我剛剛到寫一個函數,限制輸入到文本框的有效十進制值,並且我想出了以下內容:
Private Sub validateDecimalTextBox(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) handles myTextBox.keyPress
Dim textBox As TextBox = DirectCast(sender, TextBox)
If Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar) Or (e.KeyChar = "." And textBox.Text.IndexOf(".") < 0) Or (e.KeyChar = "-" And textBox.Text.Length = 0)) Then
e.Handled = True
End If
End Sub
這應該將用戶輸入限制爲十進制值,並允許負值。
如果限制用戶的輸入,然後當你從文本框中獲取的價值了,你可以更加確信它是有效的。
該解決方案是不完整的。然而,因爲這將允許用戶只需輸入「 - 」,其中將(可能)不適合你的有效輸入文本框。因此,您可以使用其他人提到的解決方案,並以合理的方式使用以下任何內容。
double.parse,
double.tryparse
isNumeric()
我個人的偏好是isNumeric(),但選擇是真的取決於你。
該代碼應該工作。你能發佈確切的錯誤信息嗎? – David 2010-11-02 16:07:04