VB将字符替换为字符串

时间:2016-10-17 16:32:19

标签: vb.net visual-studio

我想将字符替换为字符串 例如我有一个字符串

  

ABCD ^>

我想将^更改为

  

{输入}

和>到

  

{标签}

我最近有这个代码,但我找不到出路。

Dim temp As String
temp = TextBox1.Text
For Each chr As String In temp
If chr = "^" Then
chr = Replace(chr, "^", "{enter}")
End If
TextBox1.Text += chr
MessageBox.Show(TextBox1.Text)
Next

我也将它用于文本框中的按键事件,但仍然无法正常工作

texts = Replace(TextBox2.Text, "^", "{enter}")
texts = Replace(TextBox2.Text, ">", "{tab}")

3 个答案:

答案 0 :(得分:2)

Dim temp as String = TextBox1.Text
temp = temp.Replace("^", "{enter}").Replace(">", "{tab}")
TextBox1.Text = temp

答案 1 :(得分:1)

您可以从代码中删除一些内容, 非必要变量以及您对循环的使用

这就是我要做的......不需要循环。

MessageBox.Show(TextBox1.Text.Replace("^", "{enter}").Replace(">", "{tab}"))
  

我也将它用于文本框中的按键事件,但仍然无法正常工作

根据你的密码,我在按键事件中看不到你在做什么。无论如何,您仍然可以捕获按下的键并根据需要执行逻辑,但我没有看到您尝试过这样做的尝试。

答案 2 :(得分:1)

也许这样的事情对你有用。

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

    Const EnterTag As String = "{enter}"
    Const TabTag As String = "{tab}"

    If Me.TextBox1.Text.IndexOf("^") > -1 Then
        curLoc = Me.TextBox1.SelectionStart
        Me.TextBox1.Text = TextBox1.Text.Replace("^", EnterTag)
        Me.TextBox1.SelectionStart = curLoc + EnterTag.Length
    End If

    If Me.TextBox1.Text.IndexOf(">") > -1 Then
        curLoc = Me.TextBox1.SelectionStart
        Me.TextBox1.Text = TextBox1.Text.Replace(">", TabTag)
        Me.TextBox1.SelectionStart = curLoc + TabTag.Length

    End If

End Sub