如何检查某个字符的文本框并在同一位置替换为不同的字符串
How to check a text box for a certain character and replace with a different string in the same spot
我正在做一个摩尔斯电码翻译项目,但我不知道如何检测某个键何时出现在文本框中,并在正确的位置用相应的摩尔斯电码点和破折号替换它。
例如,如果您输入 "a b c",那么我希望程序检查并输入
".- -... -.-."
但它也需要是动态的,所以如果您改变字母的顺序,它可以更新翻译。
现在我有一个密钥检查系统,你只能输入一个前行,如果你搞砸了,你必须清除整个框。谢谢!
这是我在上面的评论中所建议的基本示例,即使用两个单独的 TextBoxes
并每次都翻译整个文本:
Private morseCodeDictionary As New Dictionary(Of Char, String) From {{"a"c, ".-"},
{"b"c, "-..."},
{"c"c, "-.-."}}
Private Sub inputTextBox_TextChanged(sender As Object, e As EventArgs) Handles inputTextBox.TextChanged
outputTextBox.Text = String.Join(" ",
inputTextBox.Text.
ToLower().
Select(Function(ch) morseCodeDictionary(ch)))
End Sub
这里有一个不使用 LINQ 的实现,因此可能更容易理解:
Private Sub inputTextBox_TextChanged(sender As Object, e As EventArgs) Handles inputTextBox.TextChanged
Dim characterStrings As New List(Of String)
For Each ch As Char In inputTextBox.Text
characterStrings.Add(morseCodeDictionary(ch))
Next
outputTextBox.Text = String.Join(" ", characterStrings)
End Sub
我正在做一个摩尔斯电码翻译项目,但我不知道如何检测某个键何时出现在文本框中,并在正确的位置用相应的摩尔斯电码点和破折号替换它。
例如,如果您输入 "a b c",那么我希望程序检查并输入
".- -... -.-."
但它也需要是动态的,所以如果您改变字母的顺序,它可以更新翻译。
现在我有一个密钥检查系统,你只能输入一个前行,如果你搞砸了,你必须清除整个框。谢谢!
这是我在上面的评论中所建议的基本示例,即使用两个单独的 TextBoxes
并每次都翻译整个文本:
Private morseCodeDictionary As New Dictionary(Of Char, String) From {{"a"c, ".-"},
{"b"c, "-..."},
{"c"c, "-.-."}}
Private Sub inputTextBox_TextChanged(sender As Object, e As EventArgs) Handles inputTextBox.TextChanged
outputTextBox.Text = String.Join(" ",
inputTextBox.Text.
ToLower().
Select(Function(ch) morseCodeDictionary(ch)))
End Sub
这里有一个不使用 LINQ 的实现,因此可能更容易理解:
Private Sub inputTextBox_TextChanged(sender As Object, e As EventArgs) Handles inputTextBox.TextChanged
Dim characterStrings As New List(Of String)
For Each ch As Char In inputTextBox.Text
characterStrings.Add(morseCodeDictionary(ch))
Next
outputTextBox.Text = String.Join(" ", characterStrings)
End Sub