我有一个Windows窗体。在那里有一个文本框。我希望该文本框只接受浮点值。
答案 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));
}