日期:2014-05-19  浏览次数:20959 次

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= " ";
}
}
}