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