1

我想创建一个允许用户键入十进制值的文本框。现在要注意的是,我想将 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 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

有人可以帮我解决这个 maxlength 部分吗?感谢任何帮助和指示。

4

1 回答 1

4

您将无法使用该MaxLength属性执行此操作,文本框只是在查看String.Length,而您想要实际将字符串解析为十进制值并对其进行一些边界检查。

您需要在按键事件中执行此操作。最简单的做法是执行以下操作:

var value = Decimal.Parse(textBox1.Text);
if(value >= 99999)
     e.Handled = true;

这不是您可能想要的确切算法,但您明白了。

于 2012-08-20T18:22:11.173 回答