WinForm,大家有什么方法控制TextBok里用户最多只能输入两位小数点,即不能输入超过两位小数点的数.
也就是可以输入:
1000.01
10.56
7.89等
但不能输入:
1000.001
10.564
7.892
------解决方案--------------------2005直接有控件,写正则就可以了
2003的,可以使用第三方控件,或者在KEYPRESS事件里写代码
------解决方案--------------------keypress里写代码
------解决方案--------------------用masktextbox
------解决方案--------------------用 正册表达式
------解决方案--------------------只能输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
------解决方案--------------------如果是程序中
private static bool RegexOperation(string syllable, string regex)
{
//正则表达式的枚举类型
System.Text.RegularExpressions.RegexOptions options = (
(System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace |
System.Text.RegularExpressions.RegexOptions.Multiline) |
System.Text.RegularExpressions.RegexOptions.IgnoreCase);
//加载正则表达式到枚举类型上
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(regex, options);
//返回验证结果
return reg.IsMatch(syllable);
}
====
public static bool IsNumber(string syllable)
{
string regex = "^[0-9]+(.[0-9]{2})?$ ";
return RegexOperation(syllable, regex);
}
------解决方案--------------------private void textBox1_TextChanged(object sender, System.EventArgs e)
{
string txt= this.textBox1.Text;
if(txt.IndexOf( ". ")!=-1)
{
int index = txt.IndexOf( ". ");
if(txt.Remove(0,index+1).Length> 2)
{
MessageBox.Show( "输入有误! ");
this.textBox1.Text= " ";
}
}
}