很简单的。
重写TextBox的OnKeyPress事件,控制字符的输入。e.Handled为真的时候不接受输入。
这是我写的源代码,你可以参考下。 bool bFlag = true;
if (Char.IsDigit(e.KeyChar) && this.Text.IndexOf(e.KeyChar)-this.Text.IndexOf(".")<=2 )
//只允许输入数字,并且当数字在小数点后时不能超出2位的长度
bFlag = false;
else if (e.KeyChar=='.' && this.Text.IndexOf(".")<0 )
{//只允许有一个小数点
bFlag = false;
}
else if (e.KeyChar==('-') && this.Text.IndexOf('-')<0 && this.SelectionStart==0)
//只允许有一个负号并且在开始的第一个位置
{bFlag = false;} e.Handled = bFlag;(最后不要忘记将所得的字符串转成数值型哦)(各位兄弟也可以采用其中的思想来实现自己的输入控制方式。)
重写TextBox的OnKeyPress事件,控制字符的输入。e.Handled为真的时候不接受输入。
这是我写的源代码,你可以参考下。 bool bFlag = true;
if (Char.IsDigit(e.KeyChar) && this.Text.IndexOf(e.KeyChar)-this.Text.IndexOf(".")<=2 )
//只允许输入数字,并且当数字在小数点后时不能超出2位的长度
bFlag = false;
else if (e.KeyChar=='.' && this.Text.IndexOf(".")<0 )
{//只允许有一个小数点
bFlag = false;
}
else if (e.KeyChar==('-') && this.Text.IndexOf('-')<0 && this.SelectionStart==0)
//只允许有一个负号并且在开始的第一个位置
{bFlag = false;} e.Handled = bFlag;(最后不要忘记将所得的字符串转成数值型哦)(各位兄弟也可以采用其中的思想来实现自己的输入控制方式。)
解决方案 »
- c#调用c++ dll提示 尝试读取或写入受保护的内存
- datagridview的模糊搜索
- 如果让不同次的sqlcommand的执行包含在一个transaction中?
- 无法显式调用运算符或访问器
- 一个asp.net新手 问题 急求高手回答!!!!
- 怎样避免单击button不触发WebForm的page_load??
- 谁能帮我解释一下这里delegate的作用以及执行过程??最好具体一些!谢谢……
- 关于xml序列化的问题
- 在winform中,删除数据后datagrid仍显示删除的数据,必须重新打开才可以。想删除后马上就体现出来,还必须在设一下datasource吗?
- C#获取打印机状态
- 在线等待:用ArrayList怎么定义数据从A到Z,不会是一个个ADD吧?
- 谁见过这种错误
if (Char.IsDigit(e.KeyChar) && this.Text.IndexOf(e.KeyChar)-this.Text.IndexOf(".")<=2 )
应该改为:
if (Char.IsDigit(e.KeyChar))
{
bFlag = false;
if (this.Text.IndexOf(".")>0 && this.SelectionLength - this.Text.IndexOf(".")>2)
{
bFlag = true;
}
}