C# 输入框最后一位数字无法删除
t4.KeyPress += new System.Windows.Forms.KeyPressEventHandler(text_KeyPress);
t5.KeyPress += new System.Windows.Forms.KeyPressEventHandler(text_KeyPress);
t4.TextChanged += new EventHandler(text_TextChanged);
t5.TextChanged += new EventHandler(text_TextChanged);
在网上找到这两段代码,贴上去了,才发现输入数字后删除,个位总删不掉
private void text_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !(Char.IsNumber(e.KeyChar) || e.KeyChar == (char)8 || e.KeyChar == '.');
if (!e.Handled) (sender as TextBox).Tag = (sender as TextBox).Text;//记录最后一次正确输入
}
private void text_TextChanged(object sender, EventArgs e)
{
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;
}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = false;
if (e.KeyChar >= '0' && e.KeyChar <= '9')
e.Handled = true;
}