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