900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C# TextBox文本框只能输入数字 小数点(最大到2位) 退格键 负号

C# TextBox文本框只能输入数字 小数点(最大到2位) 退格键 负号

时间:2022-05-05 15:22:12

相关推荐

C# TextBox文本框只能输入数字 小数点(最大到2位) 退格键 负号

要实现TextBox文本框输入限制 ,先要为TextBox添加KeyPress事件。

代码如下:

//数字、小数点(最大到2位)、退格键、负号private void textBox1_KeyPress(object sender, KeyPressEventArgs e){if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != (char)('.') && e.KeyChar != (char)('-')){e.Handled = true;}if (e.KeyChar == (char)('-')){if ((sender as TextBox).Text != ""){e.Handled = true;}}//第1位是负号时候、第2位小数点不可if (((TextBox)sender).Text == "-" && e.KeyChar == (char)('.')){e.Handled = true;}//负号只能1次if (e.KeyChar == 45 && (((TextBox)sender).SelectionStart != 0 || ((TextBox)sender).Text.IndexOf("-") >= 0))e.Handled = true;//第1位小数点不可if (e.KeyChar == (char)('.') && ((TextBox)sender).Text == ""){e.Handled = true;}//小数点只能1次if (e.KeyChar == (char)('.') && ((TextBox)sender).Text.IndexOf('.') != -1){e.Handled = true;}//小数点(最大到2位) if (e.KeyChar != '\b' && (((TextBox)sender).SelectionStart) > (((TextBox)sender).Text.LastIndexOf('.')) + 2 && ((TextBox)sender).Text.IndexOf(".") >= 0)e.Handled = true;//光标在小数点右侧时候判断 if (e.KeyChar != '\b' && ((TextBox)sender).SelectionStart >= (((TextBox)sender).Text.LastIndexOf('.')) && ((TextBox)sender).Text.IndexOf(".") >= 0){if ((((TextBox)sender).SelectionStart) == (((TextBox)sender).Text.LastIndexOf('.')) + 1){if ((((TextBox)sender).Text.Length).ToString() == (((TextBox)sender).Text.IndexOf(".") + 3).ToString())e.Handled = true;} if ((((TextBox)sender).SelectionStart) == (((TextBox)sender).Text.LastIndexOf('.')) + 2){if ((((TextBox)sender).Text.Length - 3).ToString() == ((TextBox)sender).Text.IndexOf(".").ToString()) e.Handled = true;}}//第1位是0,第2位必须是小数点if (e.KeyChar != (char)('.') && e.KeyChar != 8 && ((TextBox)sender).Text == "0"){e.Handled = true;}}————————————————版权声明:本文为CSDN博主「qq_42675313」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:/qq_42675313/article/details/81111388

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。