2016-09-23 5 views
0

숙제 http://typeracer.com/처럼 작동하는 프로그램을 만들어야합니다.VB에서 반복되는 단어에 밑줄 적용

는 Heres는 지금까지 무슨 짓을했는지 :

Dim strContent As String = "the texts the text the text" 
Dim arrNum As Integer = 0 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    arrContent = strContent.Split(" ") 
    RichTextBox2.Text = strContent 
End Sub 

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged 
    If TextBox1.Text = arrContent(arrNum) + " " Then 
     TextBox1.Clear() 
     arrNum = arrNum + 1 
    End If 
End Sub 

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 
    Dim strSearch As String = arrContent(arrNum) 
    Dim intIndex As Integer = RichTextBox2.Find(strSearch, 0, RichTextBoxFinds.WholeWord) 
    If intIndex <> -1 Then 
     RichTextBox2.SelectionStart = intIndex 
     RichTextBox2.SelectionLength = strSearch.Length    
     RichTextBox2.SelectionFont = New Font(RichTextBox2.Font, FontStyle.Bold) 
    End If 
End Sub 

문제는 반복되는 단어에 밑줄을하지 않는다는 것입니다, 왜?

답변

0

텍스트에 굵게 표시하고 밑줄을 그어 표시하지 않으므로 밑줄이 그어지지 않습니다. Timer1_Tick에 중단 점을 넣으면 타이머를 시작하지 않았기 때문에 중단하지 않을 것이라고 생각합니다. 타이머가 아직 활성화되어 있지 않으면 활성화하고 시작해야합니다.

것은이

Timer1.Enabled = True 
Timer1.Start() 

를를 Form1_Load 그리고

RichTextBox2.SelectionFont = New Font(RichTextBox2.Font, FontStyle.Bold) 

RichTextBox2.SelectionFont = New Font(RichTextBox2.Font, FontStyle.Underline) 

내가이와 밑줄 작품을 시도 변경 추가,하지만 당신은 당신이있어 다른 논리 문제가 소트 할 필요가 있습니다. 동일한 단어가 한 번 이상 내용에 있으면 밑줄 논리가 실패합니다. 또한 프로그램이 처음 시작할 때 첫 단어에 밑줄을 긋지 않으며, 배열의 색인이 범위를 벗어날 수 있기 때문에 텍스트 상자에 모든 단어를 입력하면 오류가 발생합니다. 하지만 밑줄 부분이 작동하고 있으므로 나머지 부분을 디버깅 할 수 있습니다.

+0

감사합니다. 지적 해 주셔서 감사합니다. –