如何实现,让文本框只能输入数字,不能输入非数字字符呢?
--------------------------------
有些文本框是只允许录入金额的,如果用户录入了非数值,我还要进行异常处理。
所以想实现,用户无法录入非数字,如何实现呢?再说了,本来只能录入金额的地方,用户连 abc 都能录进去,程序也不规范呀!!!
--------------------------------
有些文本框是只允许录入金额的,如果用户录入了非数值,我还要进行异常处理。
所以想实现,用户无法录入非数字,如何实现呢?再说了,本来只能录入金额的地方,用户连 abc 都能录进去,程序也不规范呀!!!
解决方案 »
- DesignSurface如何让设计器响应键盘和鼠标指令呢?
- 求推荐一本C# WinForm编程的实践性质的书!!!
- RS485转换器的位置
- <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
- 求Winfrom下自动更新详细完整解决方案
- Tcp 长连接 怎么写?
- 控制不能使用最大化按钮
- 是什么意思
- 关于怎么横向输出有一字段的内容。。最好用datagrid..仿佛很简单。仿佛有很难。
- wpf的DataGrid如何双向绑定
- 谁知道“截断控制符”是神马东东?
- win7系统 windows服务调用word组件问题
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
int iKeyChar=e.KeyChar;
//8是按下退格键,13是按下回车键
if (iKeyChar == 8 || iKeyChar == 13)
{
e.Handled = false;
return;
}
//限制只能输入0至9
string s1="0123456789";
iKeyChar = s1.IndexOf(e.KeyChar);
if(iKeyChar==-1)
{
e.Handled = true;
}
}
Regex regex = new Regex(@"^[0-9\s]+$");
if (!regex.IsMatch(e.KeyChar.ToString()))
{
e.Handled = true;
}
http://blog.csdn.net/wuyazhe/archive/2010/07/12/5729338.aspx
private bool nonNumberEntered = false;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
nonNumberEntered = false;
if ((e.KeyCode < Keys.D0) || (e.KeyCode > Keys.D9 && e.KeyCode < Keys.NumPad0) || (e.KeyCode > Keys.NumPad9))
{
if (e.KeyCode != Keys.Back)
{
nonNumberEntered = true;
}
}
} private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (nonNumberEntered)
{
e.Handled = true;
}
}
Char.IsNumber(e.KeyChar)
{
Double.parse( 你的输入);
}
catch
{
messagebox.show("数据格式非法");
return;
}
或者
继承TextBox,重载ProcessKeyEventArgs
protected override bool ProcessKeyEventArgs(ref Message m)
{
int s=m.Wparam.ToInt32();
if(m.Msg==0x0102)
{
if((s <48)||(s> 57))//这里是需要屏蔽的字符(ASCII)
return true;
}
return base.ProcessKeyEventArgs (ref m);
}
try
{
convert.todouble(text);
}
catch
{
text = String.emety;
}