如果获得被点击控件的信息啊?

liulang0808 2008-03-06 11:03:13
假设由10个COMMAND 控件,其中一个被点击,如果返回信息知道是那个COMMAND控件被点击啊 ?
...全文
55 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
liulang0808 2008-03-07
感谢大家的解答.
可能是我的问题,没有说清楚.
不过自己已经解决了问题
回复
z_wenqian 2008-03-07
在VBA里没有控件数组,所以每一个控件都有自己单独的事件,如CommandButton1、CommandButton2等有自己的事件
CommandButton1_Click和CommandButton2_Click,怎么能说都有相同的事件呢?既然有自己单独的事件,那就能在事件中赋一个单独的ID值,然后在公共函数中去判断,如:

Private Sub CommandButton1_Click()
Call Cmd_Proc(1)
End Sub

Private Sub CommandButton2_Click()
Call Cmd_Proc(2)
End Sub

Private Sub Cmd_Proc( cmdID as Integer)
Select Case cmdID
Case 1 : MsgBox "CommandButton1"
Case 2 : MsgBox "CommandButton2"
.
.
.
End Select
End Sub

这样不就区分开是那个控件了。
回复
liulang0808 2008-03-06
LS的意思我清楚。目前情况是这样的:
我有81个COMMAND控件,当点击其中一个,都会触发同样的事件,但是需要知道被点击这个COMMAND控件的信息。比如。Caption属性,NAME等,根据这些属性调用相同的函数来处理一些跟这个COMMAND有关的数据。
回复
定义一个判断函数,参数为区别按钮的一个ID,自己定义ID的值.

判断函数内根据ID作不同的处理.

与控件数组差不多的思路吧.
回复
同上

单击事件里判断索引值
回复
liulang0808 2008-03-06
不好意思啊,是在VBA里,控件数字不让用的。
回复
控件弄成数组就可以了
回复
private function DoSomething(byval theID as string)
select case theid
case "Command1"
'处理
case "CommandX"
'处理.....
......
end select
end function

private sub Command1_Click()
call dosomething(command1.name)
end sub

........................

private sub Command81_Click()
call dosomething(command81.name)
end sub


没有明白你上面7楼那帖子是在提问,还是在干嘛....

又好象在自言自语,又好象是在与谁讨论?

无法理解...

反正我的思路,代码就是这样....等于是手工模拟了一下数组控件.
回复
liulang0808 2008-03-06
我有81个COMMAND控件,当点击其中一个,都会触发同样的事件,但是需要知道被点击这个COMMAND控件的信息。比如。Caption属性,NAME等,根据这些属性调用相同的函数来处理一些跟这个COMMAND有关的数据。
回复
舉杯邀明月 2008-03-06
VBA中是不支持控件数组,我觉得就是应该用4楼说的那种思路来做.
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7489

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2008-03-06 11:03
社区公告
暂无公告