VB中关于command控件单击后对label单击事件的判断
如图所示检修线路短路器和检修I段母线分别是label1和label2控件,下一步是command1控件,下边是用于显示文字的label3控件。问题是分别单击label1和...
如图所示检修线路短路器和检修I段母线分别是label1和label2控件,下一步是command1控件,下边是用于显示文字的label3控件。
问题是分别单击label1和label2之后,单击command1空间后,command1控件能对之前单击的label控件进行判断,也就是判断之前所单击的是label1还是label2,,判断好之后,单击command1事件会在label3内显示不同的内容。
需要回答的问题是,command1对左边两个label的单击事件是怎么判断出来的,希望能用详细代码说明 展开
问题是分别单击label1和label2之后,单击command1空间后,command1控件能对之前单击的label控件进行判断,也就是判断之前所单击的是label1还是label2,,判断好之后,单击command1事件会在label3内显示不同的内容。
需要回答的问题是,command1对左边两个label的单击事件是怎么判断出来的,希望能用详细代码说明 展开
2个回答
展开全部
设置一个全局变量,在Label的单击事件中分别赋不同的值。示意如下:
dim labClick as boolean
Private Sub Label1_Click()
labClick = 0
Label2.ForeFolor=Label1.ForeColor
Label1.ForeColor = vbBlue ’更改Label样式,指示该Label被选中
Command1.Enabled = True ‘command按钮有效
End Sub
Private Sub Label2_Click()
labClick = 1
Label1.ForeFolor=Label2.ForeColor
Label2.forecolor=Label1.forecolor
Label2.ForeColor = vbBlue ’更改Label样式,指示该Label被选中
Command1.Enabled = True ‘command按钮有效
End Sub
Private Sub Command1_Click()
if labClick then
msgbox "Label2被选中,检修母线"
else
msgbox "Label1被选中,检修断路器"
end if
End Sub
Private Sub Form_Load()
command1.enabled=false
End Sub
其实也可以采用Label控件的属性来存储单击后的更改,但是由于效率问题,还是采用变量好一点,另:这两个Label可以采用一个控件数组,程序上更简洁一点:
Private Sub Label1_Click(Index As Integer)
labClick = Index
command1.enabled=true
End Sub
展开全部
我感觉这个问题很简单,不知道是不是我的理解有误。
解决方法,定义一个全局变量,并赋一个初始值,然后在单击两个标签时,分别赋不同的值,在按钮事件中根据这个全局变量的值是多少,进行下一步的操作。
Dim i As Integer
i = 0
Private Sub Label1_Click()
i=1
‘你需要的操作
End Sub
Private Sub Label2_Click()
i=2
‘你需要的操作
End Sub
Private Sub Command1_Click()
if i=1 then
i=0 '视情况需要,使用完之后,重新赋回初始值
‘你需要的操作
end if
if i=2 then
i=0'视情况需要,使用完之后,重新赋回初始值
‘你需要的操作
end if
End Sub
解决方法,定义一个全局变量,并赋一个初始值,然后在单击两个标签时,分别赋不同的值,在按钮事件中根据这个全局变量的值是多少,进行下一步的操作。
Dim i As Integer
i = 0
Private Sub Label1_Click()
i=1
‘你需要的操作
End Sub
Private Sub Label2_Click()
i=2
‘你需要的操作
End Sub
Private Sub Command1_Click()
if i=1 then
i=0 '视情况需要,使用完之后,重新赋回初始值
‘你需要的操作
end if
if i=2 then
i=0'视情况需要,使用完之后,重新赋回初始值
‘你需要的操作
end if
End Sub
更多追问追答
追答
如果用布尔值判断,我觉得有点难度,因为它只有两个值,而需要解决的问题是可能有三个状态,点击了标签1、点击了标签2,也有可能是哪个都没有点。
我想如果一定要用布尔值,可不可以定义两个?一个判断1,一个判断2,初始为假,如果哪个为真就执行相应语句,执行完了再变回为假。如果两个值互斥,只能一个是真,那在标签事件中就对两个都赋值。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询