c# 只能输入数字的文本框
来源:互联网 发布:boogie board的软件 编辑:程序博客网 时间:2024/05/16 01:11
作者:兔子党逍遥
转自:http://blog.csdn.net/wuyazhe/article/details/5729338
- private void textBox1_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 textBox1_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;
- }
- }
好奇而已,别人发的问题。回复一下。觉得这样写比较简练。发到博客上,方便查找。
------------------------------------------------
2010-11-05修改一下
复制如下代码到你项目中。编译,从工具栏中拖出这个控件即可。
- public class NumbericTextbox : TextBox
- {
- protected override void OnKeyPress(KeyPressEventArgs e)
- {
- e.Handled = !(Char.IsNumber(e.KeyChar) || e.KeyChar == (char)8 || e.KeyChar == '.');
- if (!e.Handled) this.Tag = this.Text;//记录最后一次正确输入
- base.OnKeyPress(e);
- }
- protected override void OnTextChanged(EventArgs e)
- {
- base.OnTextChanged(e);
- if (!System.Text.RegularExpressions.Regex.IsMatch((this).Text, @"^(?!0/d)/d+(/./d*)?$|"))
- {
- int index = (this).SelectionStart;
- (this).Text = (this).Tag as string;
- (this).SelectionStart = index;
- }
- }
- public const int WM_PASTE = 0x302;
- protected override void WndProc(ref Message m)
- {
- if (m.Msg == WM_PASTE)//粘贴
- {
- if (!Regex.IsMatch(Clipboard.GetText(), @"^(?!0/d)/d+(/./d*)?$|")) return;
- }
- base.WndProc(ref m);
- }
- }
如果不限制是数值,只是要求数字序列,把代码中的正则都换为:@"^/d+$"就可以了。
0 0
- c# 只能输入数字的文本框
- c# 只能输入数字的文本框
- c# 文本框只能输入数字
- C# 文本框只能输入数字
- C# 文本框只能输入数字
- 只能输入数字的文本框
- 只能输入数字的文本框
- 只能输入数字的文本框
- 只能输入数字的文本框
- 只能输入数字的文本框
- C# 文本框只能输入数字和退格键
- C# 文本框只能输入数字和退格键
- C# 文本框只能输入数字和退格键
- C#中实现文本框只能输入数字
- C# 文本框如何控制只能输入数字?
- 文本框只能输入数字
- 文本框只能输入数字
- 文本框只能输入数字
- Java的反射
- tory burch sale homh tnnq rzfh
- GKeyFile生成配置文件
- 数据库表空间的操作
- js图片点击放大特效代码
- c# 只能输入数字的文本框
- 常用汇编指令
- 字体图标资料链接收集
- Clustering by fast search and find of density peaks翻译
- MYSQL DELETE表1关联表2 多表删除
- 转换与DTP的关系
- android 2.x上Dialog特定情况导致无法dismiss的bug
- iOS多语言,支持app内部设置
- 有关于UIView中的autoresizingMask属性