繁体   English   中英

在VB中强调重复的单词

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM