对把该事件设为public 如: form1中: public Sub Command1_Click() ... end sub在form2中要调用这个过程,只要: form1.Command1_Click就搞定拉
如果你先声起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
那你把form1里面的cmd1的click里的内容写成一个公共的函数不就行了吗,何必这么执着呢
把Form1中的cmd1的代码改成 public sub cmd1_click() ... ... end sub 在Form2中的cmd2的代码中加入 private sub cmd2_click() call form1.cmd1_click end sub 就可以啦 别忘了加Call 和全局声明form1中的cmd1的单击事件Public
默认的话是private,如果我的程序中有很多窗口的话,又按照这样的方法做的话,就会有N个PUBLIC SUB,是不是?
如:
form1中:
public Sub Command1_Click()
...
end sub在form2中要调用这个过程,只要:
form1.Command1_Click就搞定拉
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
public sub cmd1_click()
... ...
end sub
在Form2中的cmd2的代码中加入
private sub cmd2_click()
call form1.cmd1_click
end sub
就可以啦
别忘了加Call
和全局声明form1中的cmd1的单击事件Public
不是用public,就是用Friend,Friend能保证你的这个过程不被外面的工程使用,如果,你的这个工程实现了一定的接口,可供外部程序调用的。但你又不想让外部程序使用而在你内部工程中又是通用的话,那么你可以使用Friend
不应该直接调用另一个窗体里的控件的事件处理函数,你应该把事件处理函数的主要功能代码写在另外的一个函数里,因为有时候你会在不同的地方使用该功能,这时你就可以调用该函数,而不必直接调用控检的事件处理函数,而且控检的事件除里函数中还可以有少量自己的专用代码(不包含在那个函数之中)
不要把程序弄得乱七八糟。楼主的做法就像是使用goto一样
说实话有点失望,想的PUBLIC方法我也想到,我就是不想用。
我的情况是这样的。
一个MID窗口,和几个MID子窗口。
MID中会使用菜单。
MID子窗口我想用右键弹出菜单。
这样我在MID子窗口中加菜单,然后右键就可以看见,但是这样带来的问题是,当我打开MID子窗口时,我MID主窗口的菜单就不见了。
于是我只是在MID主窗口中加菜单,但是出现的问题,就是要呼叫MID子窗口的事件!