因为空字符串不匹配@"^(?!0\d)\d+(\.\d*)?$"),这样文件就是用tag中的值(个位数)。
加个判断,如果为空字符串,不判断正则 private void text_TextChanged(object sender, EventArgs e)
{
if ((sender as TextBox).Text == "")
{
return;
} if (!System.Text.RegularExpressions.Regex.IsMatch((sender as TextBox).Text, @"^(?!0\d)\d+(\.\d*)?$"))
{
int index = (sender as TextBox).SelectionStart;
(sender as TextBox).Text = (sender as TextBox).Tag as string;
(sender as TextBox).SelectionStart = index;
}
}
加个判断,如果为空字符串,不判断正则 private void text_TextChanged(object sender, EventArgs e)
{
if ((sender as TextBox).Text == "")
{
return;
} if (!System.Text.RegularExpressions.Regex.IsMatch((sender as TextBox).Text, @"^(?!0\d)\d+(\.\d*)?$"))
{
int index = (sender as TextBox).SelectionStart;
(sender as TextBox).Text = (sender as TextBox).Tag as string;
(sender as TextBox).SelectionStart = index;
}
}
{
e.Handled = false;
if (e.KeyChar >= '0' && e.KeyChar <= '9')
e.Handled = true;
}