Visual studio 标签文本显示不正确
例如,当我输入“adgj”时,标签的文本应该是“2345”,但当我运行它时,标签的文本是“2”代码失败的原因是,在子字符串上,您没有将长度限制为1。这意味着strWord的内容将是:Visual studio 标签文本显示不正确,visual-studio,visual-studio-2017,Visual Studio,Visual Studio 2017,例如,当我输入“adgj”时,标签的文本应该是“2345”,但当我运行它时,标签的文本是“2”代码失败的原因是,在子字符串上,您没有将长度限制为1。这意味着strWord的内容将是: Private Sub btnFind_Click(sender As Object, e As EventArgs) Handles btnFind.Click lblNumber.Text = "" strLttrInput = InputBox("Please enter a letter o
Private Sub btnFind_Click(sender As Object, e As EventArgs) Handles btnFind.Click
lblNumber.Text = ""
strLttrInput = InputBox("Please enter a letter or phrase:", "Find the corrresponding number to the letter(s)")
With strLttrInput
.ToLower()
.Trim()
End With
intPhraseIndx = strLttrInput.Length - 1
Dim strWord(intPhraseIndx) As String
Dim strOutput As String = String.Empty
For intCount = 0 To intPhraseIndx
strWord(intCount) = strLttrInput.Substring(intCount)
Next
For intCount = 0 To intPhraseIndx
Select Case strWord(intCount)
Case "a", "b", "c"
lblNumber.Text = lblNumber.Text & "2"
Case "d", "e", "f"
lblNumber.Text = lblNumber.Text & "3"
Case "g", "h", "i"
lblNumber.Text = lblNumber.Text & "4"
Case "j", "k", "l"
lblNumber.Text = lblNumber.Text & "5"
Case "m", "n", "o"
lblNumber.Text = lblNumber.Text & "6"
Case "p", "r", "s"
lblNumber.Text = lblNumber.Text & "7"
Case "t", "u", "v"
lblNumber.Text = lblNumber.Text & "8"
Case "w", "x", "y"
lblNumber.Text = lblNumber.Text & "9"
End Select
If strWord(intCount) = "q" Then
lblNumber.Text = lblNumber.Text & "q"
End If
If strWord(intCount) = "z" Then
lblNumber.Text = lblNumber.Text & "z"
End If
Next
End Sub
可以通过指定子字符串的长度来解决此问题:
strWord(0) = adgj
strWord(1) = dgj
strWord(2) = gj
strWord(3) = j
作为旁注,不需要循环两次并存储字母,您可以这样做:
strWord(intCount) = strLttrInput.Substring(intCount, 1)
使用visual studio 2017 for vb。我忘了删除那一行,我尝试了很多方法让它工作。String.SubString()的工作方式与您想象的不同。使用调试器很容易看到。顺便说一句,谢谢你的帮助………我总是过度思考,这几乎总是导致冗余和无法直接思考。我不确定这是否与上面的代码有关,因为消息指出不能将字符串转换为布尔值,这在这里不会发生。如果需要,可以在“项目属性->编译设置”中将“严格”选项关闭
For intCount = 0 To intPhraseIndx
Select Case strLttrInput.Substring(intCount, 1)
...
End Select
Next