这段程序是“我输入的汉字”与“已给文章中的汉字”做比较的那段,如果输入的与已给的一致,已给的字就显示为蓝色,现在有以下问题需要改正,请您指点一下我该怎麽解决?
1、如果输入的汉字与已给的一样,我计算正确率(x/a*100)是没有问题的。可是在我输入的第一个汉字与已给文章的不一样,已给文章的第一个字就显示为蓝色,如我继续再输入与已给的不一样的字,已给的也不变蓝色了,就是这头一个字变蓝色,影响正确率的计算。还有就是我再输入一个正确的字后,再输入一个不正确的字,已给文章的字自己就向后默认变蓝色,很影响正确率的计算
不知您明白没有,最好我能给您发个截图看看!谢谢您的帮助
Dim a As Integer, X As Integer
Private Sub Text2_KeyPress(KeyAscii As Integer)
a = Len(Text2.Text)
If a > 0 Then
If KeyAscii <> 8 Then
If Mid(RTB.Text, a, 1) = Mid(Text2.Text, a, 1) Then
X = X + 1
RTB.SelStart = X
RTB.SelLength = 1
RTB.SelColor = vbBlue
End If
End If
If KeyAscii = 8 Then
If a > 1 Then
If Mid(RTB.Text, a, 1) = Mid(Text2.Text, a, 1) Then
X = X - 1
RTB.SelStart = X + 1
RTB.SelLength = 1
RTB.SelColor = vbBlack
End If
End If
End If
End IfEnd Sub
1、如果输入的汉字与已给的一样,我计算正确率(x/a*100)是没有问题的。可是在我输入的第一个汉字与已给文章的不一样,已给文章的第一个字就显示为蓝色,如我继续再输入与已给的不一样的字,已给的也不变蓝色了,就是这头一个字变蓝色,影响正确率的计算。还有就是我再输入一个正确的字后,再输入一个不正确的字,已给文章的字自己就向后默认变蓝色,很影响正确率的计算
不知您明白没有,最好我能给您发个截图看看!谢谢您的帮助
Dim a As Integer, X As Integer
Private Sub Text2_KeyPress(KeyAscii As Integer)
a = Len(Text2.Text)
If a > 0 Then
If KeyAscii <> 8 Then
If Mid(RTB.Text, a, 1) = Mid(Text2.Text, a, 1) Then
X = X + 1
RTB.SelStart = X
RTB.SelLength = 1
RTB.SelColor = vbBlue
End If
End If
If KeyAscii = 8 Then
If a > 1 Then
If Mid(RTB.Text, a, 1) = Mid(Text2.Text, a, 1) Then
X = X - 1
RTB.SelStart = X + 1
RTB.SelLength = 1
RTB.SelColor = vbBlack
End If
End If
End If
End IfEnd Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货