在 TextBox 中编辑多行
Editing multiple lines in 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"
您将无法对每个它进行 for-each,因此您将不得不遍历您的 Lines 集合。向后做这个更容易,因为插入文本会改变索引位置等等,所以试试这样:
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
我希望我的程序将输入到 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"
您将无法对每个它进行 for-each,因此您将不得不遍历您的 Lines 集合。向后做这个更容易,因为插入文本会改变索引位置等等,所以试试这样:
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