.net 十进制文本框的最大长度
我想创建一个文本框,允许用户输入十进制值。现在需要注意的是,我想把maxlength赋给整数部分(小数点之前的值),所以当我说maxlength是5时 用户可以输入.net 十进制文本框的最大长度,.net,regex,vb.net,.net,Regex,Vb.net,我想创建一个文本框,允许用户输入十进制值。现在需要注意的是,我想把maxlength赋给整数部分(小数点之前的值),所以当我说maxlength是5时 用户可以输入 .12 12345 12345.67 用户不应能够输入 123456 123456.78 我正在处理文本框按键以限制字母 If Not Char.IsControl(e.KeyChar) AndAlso Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "."c The
.12
12345
12345.67
用户不应能够输入
123456
123456.78
我正在处理文本框按键以限制字母
If Not Char.IsControl(e.KeyChar) AndAlso Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "."c Then
e.Handled = True
End If
' only allow one decimal point
If e.KeyChar = "."c AndAlso TryCast(sender, TextBox).Text.IndexOf("."c) > -1 Then
e.Handled = True
End If
如果不是Char.IsControl(e.KeyChar)也不是Char.IsDigit(e.KeyChar)也不是Char.IsDigit(e.KeyChar)也不是e.KeyChar“
e、 已处理=真
如果结束
'只允许一个小数点
如果e.KeyChar=“.”c AndAlso TryCast(发送方,文本框).Text.IndexOf(“.”c)>-1,则
e、 已处理=真
如果结束
谁能帮我做一下这个最长的部分吗。感谢您的帮助和指导。如果使用
MaxLength
属性,您将无法执行此操作,文本框只是查看String.Length
,而您需要的是将字符串解析为十进制值并对其进行一些边界检查
您需要在按键事件中执行此操作。最简单的做法是:
var value = Decimal.Parse(textBox1.Text);
if(value >= 99999)
e.Handled = true;
这可能不是您想要的确切算法,但您已经明白了。如果UweKeim已经在使用按键事件来阻止输入字符(可能除了构成有效十进制值的内容之外),那么最好使用and
textBox1.Text.Trim()
?@UweKeim)然后使用TryParse()
和Trim()
(因为他可能已经在阻止空格了)。如果文本是通过右键单击上下文菜单和粘贴命令输入的呢?;-)如果文本=99999,则无法添加小数点并继续填充小数点part@UnLoCo我说这不是精确的算法,但根据他的文本框MaxLength为5,这仍然是正确的。