在VB中强调重复的单词

时间:2016-09-23 02:41:34

标签: arrays vb.net string richtextbox underline

家庭作业,我需要创建一个像http://typeracer.com/一样的程序。

到目前为止我所做的事情:

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

问题是重复的单词没有加下划线,为什么?

1 个答案:

答案 0 :(得分: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)

我试过这个并且下划线有效,但是您还需要解决其他一些逻辑问题。如果内容中的同一个单词不止一次,则下划线逻辑会失败。当程序第一次启动时它也没有强调第一个单词,并且一旦你在文本框中输入了所有单词,它也会出错,因为数组的索引将超出界限。但是现在下划线部分正在工作,你可以开始调试其余的东西了