2017-12-30 57 views
2

私のプログラムでは、TextBoxに入力された文字列を受け取り、それをパターンに変換する必要があります。ここに私の現在のコードは次のとおりです:TextBoxで複数の行を編集する

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 
    For Each line As String In TextBox1.Lines 
     TextBox1.Text.Insert(0, """") 
     TextBox1.Text.Insert((TextBox1.Text.Length), """") 
     TextBox2.AppendText(line & vbCrLf) 
    Next 
End Sub 

これらの変更は、TextBox全体ではなく、それぞれの行に対して行います。だから、

1111 
1111 

は、あなたがのために、それぞれそれにできるようにするつもりはない

"1111" 
"1111" 

代わりの

"1111 
1111" 

答えて

1

に変わるだろうので、あなたの行をループする必要がありますコレクション。テキストを挿入するとインデックスの位置などが変わるため、これを逆にするのが簡単です。

For i As Integer = TextBox1.Lines.Count - 1 To 0 Step -1 
    If TextBox1.Lines(i).Length > 0 Then 
    Dim startPos As Integer = TextBox1.GetFirstCharIndexFromLine(i) 
    TextBox1.Select(startPos, TextBox1.Lines(i).Length) 
    TextBox1.SelectedText = String.Format("{0}{1}{2}", """", TextBox1.Lines(i), """") 
    End If 
Next 
+0

これはうまくいきますが、これはどのように機能するのでしょうか?ありがとう! – Blue

+0

GetFirstCharIndexFromLine関数を使用して各行の最初の文字インデックスを取得できます。私がしているのは、その行からのテキストの長さでその位置から始まるテキストを強調表示してから、内容全体を新しいテキストに置き換えます。 – LarsTech

+0

はるかに理にかなっています!私を助ける時間をとってくれてありがとう! – Blue

関連する問題