当前位置:编程学习 > VB >>

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

本帖最后由 wanglong3713 于 2013-11-27 16:59:11 编辑

'窗体代码
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代表不同按钮 楼上的是正解
引用 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.....  
则提示缺少列表分隔符或) 楼主,你还是多看会儿书,再写吧。
如果要在模块中调用窗体的事件代码,就得把相应的事件代码从 Private 改成 Public 。

其实这样不是很好。
控件的事件代码,一般都是用Private的(当然改成Public也可以)。
还不如把这个“代码”写到一个 Public 过程中。
如果这个过程中的操作,跟窗体的成员(控件、其它对象、变量等)没什么关联,那把它写到模块中更好。
  如果相关性比较大,则可以写成窗体的  Public 过程。
用 Public定义按钮的事件。 自顶一下~ Sub TEST()
'模块中模拟调用第一个按钮点击
Call Form1.Command1_Click(0)
End Sub

Sub TEST2()
'模块中模拟调用第一个按钮点击
Call Form1.Command1_Click(1)
End Sub  
Call Form1.Command1_Click(0) 

括号中的0改成别的数字就能调用不同按钮了呀,哪用的到再弄什么SELECT
引用 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的不同给出不同的指令

此处如何调用? 一般写模块都是写成通用的积木块,便于重用。

像你这样把模块代码写得与应用窗体的具体配置方式相关,就有点南辕北辙了。

你可以把功能的通用代码写在成模块的函数和过程。窗体事件的解析还是放在窗体代码中,在那里调用模块中的函数或过程。 窗口名称.按钮名称.Click() 错了,是
窗口名称.按钮名称_Click()
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,