如何在模块中调用窗体的事件??????

wanglong3713 2013-11-27 03:59:58
本人初学VB,在修改一个程序,算是现学现卖。
现在需要在模块中调用一个窗体中的commandbutton控件的click事件,而这些控件又是一个控件数组,应该怎么做?查了写资料都没解决。
谢谢!
...全文
518 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
policelorl 2013-12-03
  • 打赏
  • 举报
回复
错了,是 窗口名称.按钮名称_Click()
policelorl 2013-12-03
  • 打赏
  • 举报
回复
窗口名称.按钮名称.Click()
of123 2013-11-29
  • 打赏
  • 举报
回复
一般写模块都是写成通用的积木块,便于重用。 像你这样把模块代码写得与应用窗体的具体配置方式相关,就有点南辕北辙了。 你可以把功能的通用代码写在成模块的函数和过程。窗体事件的解析还是放在窗体代码中,在那里调用模块中的函数或过程。
wanglong3713 2013-11-29
  • 打赏
  • 举报
回复
引用 9 楼 xiaoyao961 的回复:
Call Form1.Command1_Click(0) 括号中的0改成别的数字就能调用不同按钮了呀,哪用的到再弄什么SELECT
引用 9 楼 xiaoyao961 的回复:
Call Form1.Command1_Click(0) 括号中的0改成别的数字就能调用不同按钮了呀,哪用的到再弄什么SELECT
我脑子一时转不过来 感觉有点乱 可能我没说清楚问题 是这样的: 在一个form里,就是点击了这一组按钮,都使command_cid2_number = &HCB
Public Sub cmd_get_manage_Click(Index As Integer)
    Select Case Index
    Case 0:
    Case 1:
    Case 2:
    Case 3:
    Case 4:
    Case 5:
    Case 6:
    Case 7:
    Case 8:
    Case 9:
    Case 10:
    Case 11:
    End Select
    command_cid2_number = &HCB 
End Sub
在module的一个函数里,此处我想再根据每个Index的不同给出不同的指令 部分代码:
If command_cid2_number = &H49 Then 
...'根据每个Index的不同给出不同的指令
此处如何调用?
  • 打赏
  • 举报
回复
Call Form1.Command1_Click(0) 括号中的0改成别的数字就能调用不同按钮了呀,哪用的到再弄什么SELECT
  • 打赏
  • 举报
回复
Sub TEST() '模块中模拟调用第一个按钮点击 Call Form1.Command1_Click(0) End Sub Sub TEST2() '模块中模拟调用第一个按钮点击 Call Form1.Command1_Click(1) End Sub
wanglong3713 2013-11-28
  • 打赏
  • 举报
回复
自顶一下~
lliai 2013-11-27
  • 打赏
  • 举报
回复
用 Public定义按钮的事件。
舉杯邀明月 2013-11-27
  • 打赏
  • 举报
回复
如果要在模块中调用窗体的事件代码,就得把相应的事件代码从 Private 改成 Public 。 其实这样不是很好。 控件的事件代码,一般都是用Private的(当然改成Public也可以)。 还不如把这个“代码”写到一个 Public 过程中。 如果这个过程中的操作,跟窗体的成员(控件、其它对象、变量等)没什么关联,那把它写到模块中更好。   如果相关性比较大,则可以写成窗体的 Public 过程。
舉杯邀明月 2013-11-27
  • 打赏
  • 举报
回复
楼主,你还是多看会儿书,再写吧。
wanglong3713 2013-11-27
  • 打赏
  • 举报
回复
引用 1 楼 xiaoyao961 的回复:

'窗体代码
Public Sub Command1_Click(Index As Integer)
'INDEX=0时代表点击了订单管理按钮
Select Case Index
Case 0
FormA.Show '订单管理窗口
Case 1
FormB.Show '客户管理
Case 2
FormC.Show '商品管理
End Select
End Sub

Private Sub Form_Load()
'三个按钮:Command1(0),Command1(1),Command1(2)
'按钮上文字是:订单管理/客户管理/商品管理
End Sub


模块代码:
Sub TEST()
'模块中模拟调用第一个按钮点击
Call Form1.Command1_Click(0)
End Sub
'重点就是这个Public Sub Command1_Click,前面用PUBLIC就可以共享访问了然后,用INDEX代表不同按钮
我在模块中这样调用: Call Form1.Command_Click(Index) Select Case Index Case xx..... 编译有错误,提示变量未定义,Index这个变量,如果是 Call Form1.Command_Click(Index As Integer) Select Case Index Case xx..... 则提示缺少列表分隔符或)
彭同舟 2013-11-27
  • 打赏
  • 举报
回复
楼上的是正解
  • 打赏
  • 举报
回复

'窗体代码
Public Sub Command1_Click(Index As Integer)
'INDEX=0时代表点击了订单管理按钮
Select Case Index
Case 0
FormA.Show '订单管理窗口
Case 1
FormB.Show '客户管理
Case 2
FormC.Show '商品管理
End Select
End Sub

Private Sub Form_Load()
'三个按钮:Command1(0),Command1(1),Command1(2)
'按钮上文字是:订单管理/客户管理/商品管理
End Sub


模块代码:
Sub TEST()
'模块中模拟调用第一个按钮点击
Call Form1.Command1_Click(0)
End Sub
'重点就是这个Public Sub Command1_Click,前面用PUBLIC就可以共享访问了然后,用INDEX代表不同按钮

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧