0

我正在开发 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
4

2 回答 2

0

在您的 Case Else 中,您可以使用此处描述的方法之一计算文本框中“,”的出现次数:Count Occ of char in string,或者您可以在类级别保留一个标志并测试它是否打开(意思是是否按下了“,”键)。

于 2013-10-31T07:25:59.347 回答
0

您将希望从 KeyPress 事件中工作...

分析是否按下了逗号,如果是...

然后将文本框作为字符串读取...

使用子字符串循环读取每个字符,同时计算当前使用的数量...

如果 , 存在,则禁止该键进一步输入..

此外,您可能想使用 Beep() 告诉他们这是不可接受的......

希望有帮助..

于 2013-11-25T15:32:30.170 回答