我有一个textbox2.text,我将其声明为字符串即myletters,我也有一个label36.text,我也将其声明为字符串即模式。
我只会在文本框中输入从“a”到“z”的字母,而且有一个标签36的原因是,当我再次输入相同的字母时,它会显示错误信息。
到目前为止,这是我的代码。
Imports System.Text.RegularExpressions
Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button3.Click
Dim patterns As String
patterns = Label36.Text
Dim myletters As String
myletters = TextBox2.Text
Dim matches As MatchCollection = Regex.Matches(myletters, patterns)
If Regex.IsMatch(patterns, myletters) Then
MsgBox("You already typed this letter.")
Else
Label36.Text = Label36.Text + myletters + ","
End If
End Sub
到目前为止,我的代码在顶部有什么用处,如果我已经再次输入相同的字母并且如果我没有放相同的字母则会显示错误。
示例输出:
设置A:a,b,c,d,e
现在这是我的问题。
1)如何在不使用逗号的情况下输入我的第一个字母?
例:
一个
但我的输出是
例如:
一个,
2)如何将文本框设置为仅输入1个字母的最大值?
3)我如何在正确的时间和格式中使用逗号?
示例1:
一个
例2:
的a,b
但我的例子是
例1:
一,
例2:
A,B,
4)如何将字母排列在正确的位置?
示例1:
A,Z
如果我输入“x”,则输出必须为
例2:
一个,X,Z
答案 0 :(得分:1)
您要求进行相当多的更改,但或多或少容易:
“2)如何将文本框设置为只输入1个字母的最大值?”
TextBox2.MaxLength = 1
(或通过影响MaxLength
上Properties Panel
的{{1}}属性)
其他3个问题的答案是代码中Design View
的更新版本。
else
答案 1 :(得分:1)
我建议你将字母存储在字符串数组而不是字符串中,如下所示:
Dim myLettersArray As String() = New String() {"a", "b", "c"}
通过使用String()
作为类型,您可以遍历您的字母,如下所示:
For Each letter As String In myLettersArray
' Do something with letter
Next
要强制输入文本框(TextBox2
)仅允许单个字符,那么您可以使用MaxLength
设置的TextBox
属性,如下所示:
TextBox2.MaxLength = 1
注意:有关详细信息,请参阅TextBox.MaxLength Property文档。
要对您的信件进行排序(读取:按字母顺序排列),您只需拨打Sort()
,就像这样:
Array.Sort(testArray, StringComparer.InvariantCulture)
最后,您输出的逗号问题源于您附加逗号而不是在逗号前加上逗号,如下所示:
Dim counter As Integer = 1
For Each letter As String In myLettersArray
' Check if this is the first letter
If counter = 1 Then
Label36.Text = Label36.Text & letter
Else
Label36.Text = Label36.Text & ", " & letter
End If
counter = counter + 1
Next