更改文本框中的每个字符

时间:2013-08-06 16:17:20

标签: vb.net string replace

我遇到字符串替换问题。以下是我现在的代码。我想替换textbox1中的每个字符并将其写入textbox2,但这仅适用于最后一个字符。

如果我写:

  

您好

然后它最终应该是:

  

[并[h]] [[E]] [[1]] [[1]] [[O]]

Public Class Form1
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Try
            TextBox2.Text = TextBox1.Text.Replace("0"c, "[[something0a0]]")
            TextBox2.Text = TextBox1.Text.Replace("1"c, "[[something1a1]]")
            TextBox2.Text = TextBox1.Text.Replace("2"c, "[[something2a2]]")
            TextBox2.Text = TextBox1.Text.Replace("3"c, "[[something3a3]]")   

        Catch ex As Exception

        End Try
    End Sub
End Class

2 个答案:

答案 0 :(得分:4)

您正在覆盖TextBox2的值。将您的Replace电话换成链接并设置一次。

TextBox2.Text = TextBox1.Text.Replace("0"c, "[[something0a0]]")
                             .Replace("1"c, "[[something1a1]]")
                             .Replace("2"c, "[[something2a2]]")
                             .Replace("3"c, "[[something3a3]]")

答案 1 :(得分:1)

你可以这样做的方法是使用这样的循环。不确定它是否最有效,但它很容易理解:

TextBox2.Text = ""
For Each chr As Char In TextBox1.Text
    TextBox2.Text += "[[" & chr & "]]"
Next

另一个简单的方法是:

TextBox2.Text = "[[" & String.Join("]][[ ", TextBox1.Text.ToCharArray().AsEnumerable()) & "]]"

HTH