想实现的。1. 只能输入数字,小数点。可以分别控制他们的位数。
比如整数部分小于4位,小数点后2位。2. 小数点只能出现1次并且不能出现在首位。3. 不能复制其他不符合的文本到textbox里。4. 首位如果是0的话,除非是 0.n,否则输入其他数字后,0消失。
比如我先输入0,然后再输入1,textbox里不能显示01,应该显示1。
好像就这几点儿了。当然小弟一时没想起来的,各位老大们能补充并完善一下最好。十分感谢。好像专业点儿的可以重写textbox来实现。小弟我也很乐意学习但是一窍不通。不知道代码应该放在哪儿应该在哪儿调用。
如果有用重写的大师,麻烦写详细一点儿。十分感谢。
比如整数部分小于4位,小数点后2位。2. 小数点只能出现1次并且不能出现在首位。3. 不能复制其他不符合的文本到textbox里。4. 首位如果是0的话,除非是 0.n,否则输入其他数字后,0消失。
比如我先输入0,然后再输入1,textbox里不能显示01,应该显示1。
好像就这几点儿了。当然小弟一时没想起来的,各位老大们能补充并完善一下最好。十分感谢。好像专业点儿的可以重写textbox来实现。小弟我也很乐意学习但是一窍不通。不知道代码应该放在哪儿应该在哪儿调用。
如果有用重写的大师,麻烦写详细一点儿。十分感谢。
谢谢。麻烦给个代码吧。。是写在textbox 的change事件里面的吗
/// 名称:IsNumber
/// 判断是否数字函数1(推荐使用)
/// </summary>
/// <param name="text">需判断的文本或字符串</param>
/// <returns>返回true代表数字,否则为非数字</returns>
public static bool IsNumber(string text)
{
Regex objNotNumberPattern = new Regex("[^0-9.-]");
Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";
Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");
return !objNotNumberPattern.IsMatch(text) && !objTwoDotPattern.IsMatch(text) && !objTwoMinusPattern.IsMatch(text) && objNumberPattern.IsMatch(text);
}以上是个完整的判断字符串是否是数字的组合.
其中包括对小数点的处理.
使用前请引用正则表达式的命名空间
或
public static bool InputOnlyNumberAndDot(char e)
{
if ((e >= 48 && e <= 57) || (e == 46) || (e == (char)Keys.Back))
return true;
else
return false;
}参考