2016-09-23 15 views
0

宿題、http://typeracer.com/のように動作するプログラムを作成する必要があります。VBの繰り返し単語に下線を引く

は、相続人は私がこれまで何をやったか:

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にブレークポイントを設定すると、タイマーを起動していないため、ブレークポイントに達しないと思います。まだタイマーを有効にしていない場合は、タイマーを有効にして開始する必要があります。

は、私がこれを試してみましたが、下線は動作しますが、あなたは、あなたがしているいくつかの他のロジックの問題があるForm1_Load

Timer1.Enabled = True 
Timer1.Start() 

にこれを追加し、

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

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

を変更します整理する必要があります。同じ単語がコンテンツ内に複数回存在する場合、下線論理は失敗します。また、プログラムの最初の開始時に最初の単語に下線を引くことはありません。また、配列のインデックスが範囲外になるため、テキストボックス内のすべての単語の入力が終わるとエラーになります。しかし、下線部分が機能しているので、残りの部分をデバッグすることができます。

+0

ありがとうございました –

関連する問題