2016-09-23 2 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.Bold) 

в

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

Я попытался это и подчеркивание работает, но у вас есть какие-то другие логические вопросы, вы будете нужно будет разобраться. Если одно и то же слово содержится в содержимом более одного раза, ваша логика подчеркивания терпит неудачу. Он также не подчеркивает первое слово, когда программа сначала запускается, и это также будет ошибкой после того, как вы закончите вводить все слова в текстовом поле, потому что индекс массива будет за пределами границ. Но теперь, когда часть подчеркивания работает, вы можете начать отлаживать остальную часть этого материала.

+0

Спасибо, что указали это –

Смежные вопросы