如何使文本框仅接受浮点值

时间:2015-06-30 04:32:19

标签: .net winforms

我有一个Windows窗体。在那里有一个文本框。我希望该文本框只接受浮点值。

3 个答案:

答案 0 :(得分:1)

.value

答案 1 :(得分:0)

我认为有两次检查价值。

(1):KeyPress事件处理程序(按键时发生)

(2):验证事件处理程序(失去焦点时发生)

示例代码如下:

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == '.')
        {
            if (this.Text.IndexOf(".") >= 0 || this.Text.Length == 0)
            {
                e.Handled = true;
            }
        }
        else if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != '\b')
        {
            e.Handled = true;
        }

    }

    private void textBox1_Validating(object sender, CancelEventArgs e)
    {
        float value;
        if (!float.TryParse(textBox1.Text, out value)) { textBox1.Text = ""; }
    }

答案 2 :(得分:0)

将此代码写入textbox_PreviewTextInput事件:

private void txtBox1_PreviewTextInput(object sender, System.Windows.Input.TextCompositionEventArgs e) 
{ 
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$"); 
e.Handled = !regex.IsMatch((sender as TextBox).Text.Insert((sender as TextBox).SelectionStart, e.Text)); 
}