2013-08-06 2 views
1

У меня возникла проблема с заменой строки. Ниже приведен мой код. Я хочу заменить каждый символ в текстовом поле1 и записать его в textbox2, но это работает только для последнего символа.Изменение каждого символа в текстовом поле

Если я пишу:

Привет

Затем он должен в конечном итоге, как:

[[H]] [[е]] [[л]] [ [л]] [[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 

ответ

1

Способ, которым вы могли бы это сделать, использовать такой цикл. Не уверен, что это самый эффективный, но это довольно легко понять:

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

И еще один простой способ:

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

НТН

+0

что работал tyvm :) –

+0

Нет проб. Так это ответ на ваш вопрос? – davidsbro

+0

да за вашу помощь :) –

4

Вы переписываете значение TextBox2. Вместо этого назовите свои Replace и установите назначение один раз.

TextBox2.Text = TextBox1.Text.Replace("0"c, "[[something0a0]]") 
          .Replace("1"c, "[[something1a1]]") 
          .Replace("2"c, "[[something2a2]]") 
          .Replace("3"c, "[[something3a3]]") 
Смежные вопросы