有多个窗体,每个窗体有不同的子过程,如何在模块中编写代码执行某窗体内的子过程!

chendjin 2004-03-29 05:10:10
有多个窗体如A,B,C,B窗体有CmdMove_Click(IndexAs Integer )事件或自定义子过程AddNew(),如何在模块中编写代码执行B窗体内的CmdMove_Click(IndexAs Integer )事件!原因在于模块中有捕捉某动态菜单的响应事件。不知我表述清楚没有,初学vb,分不多了,请多包涵。
...全文
9 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chendjin 2004-03-30
今天晚上结贴!
回复
flyingscv 2004-03-30
,若A,B,C窗体中被调用的过程按private =>public修改,是否会
消耗更多内存资源。

不会
回复
chendjin 2004-03-30
接上,若A,B,C窗体中被调用的过程按private =>public修改,是否会
消耗更多内存资源。
这种设计思路是否妥当!:
1、在模块中定义公用“对象”变量,如Public frmActive As Object
2、在A,B,C窗体Form_Load()中添加:Set frmActive = A
Form_Unload()中添加:Set frmActive = Nothing
3、在A,B,C窗体中定义公用过程Public Sub GetItemId(Index As Long)
处理各自的菜单响应事件
4、上面模块代码修改为、
Private Sub MenuItemSelected(ByVal itemID As Long)
frmActive.GetItemId( itemID)
End Sub
这样设计是否因减少private =>public修改而减少内存额外开销,还有更好的
思路吗?诚请大家指教。
回复
chendjin 2004-03-29
楼上的,A,B,C窗体中都有动态菜单生成,而模块中动态菜单的
响应事件事件如下:
Private Sub MenuItemSelected(ByVal itemID As Long)
Select Case MyItem(itemID).itemName
Case "open"
Case "AddNew"
case ....
Case "exit"
End Select
End Sub
我想在此模块添加“窗体”对象作为虚参,怎么实现!
回复
etcom007 2004-03-29
同意楼上的观点
回复
wea1978 2004-03-29
'A窗体
'
call b.CmdMove_Click

'B窗体
PUBLIC Sub CmdMove_Click(IndexAs Integer )
MSGBOX "ASDFASDF"
END SUB
回复
华芸智森 2004-03-29
同意楼上的.
将子窗体过程名改为PUBLIC.
PUBLIC Sub Form_Load()
MSGBOX "ASDFASDF"
END SUB
如:CALL FORM1_CLICK()
回复
hhyttppd 2004-03-29
private =>public
回复
发动态
发帖子
控件
创建于2007-09-28

1422

社区成员

VB 控件
申请成为版主
社区公告
暂无公告