[英]Underlining repeated words in VB
作业,我需要创建一个类似于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
问题是重复的单词没有下划线,为什么?
它不会带有下划线,因为您已将其设置为粗体而不是下划线。 我想如果您在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)
我尝试了这一点,但下划线仍然有效,但是您还需要解决其他一些逻辑问题。 如果同一单词多次出现在内容中,则下划线逻辑将失败。 程序首次启动时,它也不会在第一个单词下划线,一旦在文本框中键入所有单词,它也会出错,因为数组的索引将超出范围。 但是,既然下划线部分已经正常工作,您就可以开始调试其余的东西
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.