我正在开发vb.net - windows应用程序。
我有一个文本框,用户应该输入数据。 我已经提出了一些验证,用户只能输入数字,字母和逗号。 (没有其他符号。) 它工作正常,但我想限制只插入一个逗号不超过一个。
怎么做?
我有以下代码用于文本框的按键事件。
ReadOnly ValidChars As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,"
Private Sub txtNewFlatName_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtNewFlatName.KeyPress
Select Case e.KeyChar
Case Convert.ToChar(Keys.Enter) ' Enter is pressed
' Call method here...
Case Convert.ToChar(Keys.Back) ' Backspace is pressed
e.Handled = False ' Delete the character
Case Chr(22) ' CTRL+V is pressed
' Paste clipboard content only if contains valid characters
e.Handled = If(Clipboard.GetText().All(Function(c) ValidChars.Contains(c)), False, True)
Case Else ' Other key is pressed
e.Handled = Not (ValidChars.IndexOf(e.KeyChar) > -1)
End Select
End Sub
答案 0 :(得分:0)
在你的Case Else中,你可以使用这里描述的方法之一在文本框中计算“,”的出现次数:Count Occ of char in string或者你可以在类级别上保留一个标志并测试它是否在(意思是按下','键)或不。
答案 1 :(得分:0)
您需要使用KeyPress活动......
分析是否按下了逗号,如果是的话......
然后将文本框作为字符串...
使用子串循环读取每个字符,同时计算当前使用的数字......
如果存在,则将进一步输入的密钥压入..
此外,您可能希望使用Beep()告诉他们这是不可接受的......
希望有所帮助..