2017-12-30 7 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 

이 변경 사항을 전체 텍스트 상자에는 적용하지 않고 개별 줄마다 변경합니다. 그래서

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

관련 문제