label判断 vb

来源:百度知道 编辑:UC知道 时间:2024/05/10 02:52:58
我没用数组,用了很多label做了个打字程序
其中6个label从程序顶部下沉,到frame1底部响应停止事件,现遇到问题是如果6个label里有两个label显示相同的string,如何让程序自动判断从下往上的执行顺序。请高手指教,如何改代码,谢谢。
text代码如下:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then

If UCase(RTrim(Text1.Text)) = UCase(Label11.Caption) Then
Text1.Text = ""
Text1.SetFocus
Label1.Top = 0
Init1
Label24.Caption = Val(Label24.Caption) + 1
Label7.Caption = "正确"
Label7.BackColor = &HFF00&
Label7.FontSize = 28

ElseIf UCase(RTrim(Text1.Text)) = UCase(Label12.Caption) Then
Text1.Text = ""
Text1.SetFocus
Label2.Top = 0
Init2
Label24.Caption = Val(Label24.Caption) + 1
Label7.Caption = "正确"
Label7.BackColor = &HFF00&
Label7.FontSize = 28

ElseIf UCase(RTrim(Text1.Text)) = UCase(Label13.Caption) Then
Text1.Text = ""
Text1.SetFocus
Label3.Top = 0
Init3
Label24.Cap

1、你不用数组是程序很麻烦。同样的代码你重复了6遍!
2、只能按照label的top属性来进行比较,然后区分。

答案补充:
修代码很容易,我下面帮你做。
但是你先把“现遇到问题是如果6个label里有两个label显示相同的string,如何让程序自动判断从下往上的执行顺序。”解释清楚,不然我做的代码也不知道是否有用。

'答案再补充:
'首先,建立label的控件数组。先在你的框架上,悔之已各label,默认为label1。
'不要做别的,立即按下ctrl-c,然后选中框架按下ctrl-v。在弹出的对话框里点“是”。
'然后,再选中框架按下ctrl-v,共四次。就建立控件数组label1(0)到label1(5)。
'label2就是你原来的label7。label3就是你原来的label24。
'我假定你的字符串一共有10个,已经读取到了字符串数组s里
Option Explicit

Dim v(5) As Integer, s(9) As String
Dim i As Integer
Const vld = 5, vup = 15

Private Sub Command1_Click()
For i = 0 To 5
xinbiaoqian (i)
Next i
Timer1.Enabled = True
Text1.SetFocus
End Sub

Private Sub xinbiaoqian(i As Integer)
Dim s1 As String
Randomize
v(i) = Rnd * (vup - vld) + vld '各自速度不同
s1 = s(Int(Rnd * 10))
Label1(i) = s1
Label1(i).BackColor =