怎么调用另一个窗口中的按钮的事件

xunxm 2003-02-28 11:13:06
假设有两个窗口Form1和Form2。Form1上面有一个cmd1,Form2上有个cmd2.
当我按Form2的cmd2的click事件时,我想调用Form1.cmd1的click事件,请问这个该怎么办啊?我不想把cmd1的click事件定义为public。谢谢了!
...全文
870 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xunxm 2003-03-01
  • 打赏
  • 举报
回复
我明白了。我以为能用什么办法呼叫其它窗体内控件的事件。
说实话有点失望,想的PUBLIC方法我也想到,我就是不想用。
我的情况是这样的。
一个MID窗口,和几个MID子窗口。
MID中会使用菜单。
MID子窗口我想用右键弹出菜单。
这样我在MID子窗口中加菜单,然后右键就可以看见,但是这样带来的问题是,当我打开MID子窗口时,我MID主窗口的菜单就不见了。
于是我只是在MID主窗口中加菜单,但是出现的问题,就是要呼叫MID子窗口的事件!
dsclub 2003-02-28
  • 打赏
  • 举报
回复
就是要改成Public的,然后在Call Formname!Events
lxcc 2003-02-28
  • 打赏
  • 举报
回复
dim frm as new form1的方法!
litsnake1 2003-02-28
  • 打赏
  • 举报
回复
这个没办法,你要在外部使用这个按钮事件,那么你就得把它暴露出来,否则外面怎么使用啊
不是用public,就是用Friend,Friend能保证你的这个过程不被外面的工程使用,如果,你的这个工程实现了一定的接口,可供外部程序调用的。但你又不想让外部程序使用而在你内部工程中又是通用的话,那么你可以使用Friend
KiteMail 2003-02-28
  • 打赏
  • 举报
回复
把Form1中的cmd1的代码改成
public sub cmd1_click()
... ...
end sub
在Form2中的cmd2的代码中加入
private sub cmd2_click()
call form1.cmd1_click
end sub
就可以啦
别忘了加Call
和全局声明form1中的cmd1的单击事件Public
kofer999 2003-02-28
  • 打赏
  • 举报
回复
那你把form1里面的cmd1的click里的内容写成一个公共的函数不就行了吗,何必这么执着呢
wuzhiliang 2003-02-28
  • 打赏
  • 举报
回复
如果你先声起form1,然后是form2,就有办法:

在form1中声明一个form2
dim withEvents testform2 as form2

在show form2时加上

set testform2=new form2
testform2.show

然后在form2中声明Public Events FormClick

在from2按钮的Click中写上
RaiseEvent FormClick

在form1的testform2_formClick中写上
call cmd_click




litsnake1 2003-02-28
  • 打赏
  • 举报
回复
对把该事件设为public
如:
form1中:
public Sub Command1_Click()
...
end sub

在form2中要调用这个过程,只要:
form1.Command1_Click就搞定拉
xunxm 2003-02-28
  • 打赏
  • 举报
回复
如果定义form1中的cmd1是private的话是不行的。
默认的话是private,如果我的程序中有很多窗口的话,又按照这样的方法做的话,就会有N个PUBLIC SUB,是不是?
Cooly 2003-02-28
  • 打赏
  • 举报
回复
sub cmd2_click()
call form1.cmd1_click
end sub
jingxiaoping 2003-02-28
  • 打赏
  • 举报
回复
form1.cmd1_click(),OK了。
Zedee 2003-02-28
  • 打赏
  • 举报
回复
同意kofer999(月舞影)
不要把程序弄得乱七八糟。楼主的做法就像是使用goto一样
northwolves 2003-02-28
  • 打赏
  • 举报
回复
在bas 中设置相应过程,调用即可。
zdleek 2003-02-28
  • 打赏
  • 举报
回复
严重同意kofer999(月舞影) 的观点,
不应该直接调用另一个窗体里的控件的事件处理函数,你应该把事件处理函数的主要功能代码写在另外的一个函数里,因为有时候你会在不同的地方使用该功能,这时你就可以调用该函数,而不必直接调用控检的事件处理函数,而且控检的事件除里函数中还可以有少量自己的专用代码(不包含在那个函数之中)

7,785

社区成员

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

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