在文本框中只允许使用单个逗号

时间:2013-10-31 07:18:07

标签: vb.net vb.net-2010

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您需要使用KeyPress活动......

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

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

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

如果存在,则将进一步输入的密钥压入..

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

希望有所帮助..