在Form1中如何调用Form2的函数或事件?

mingjunr 2006-05-10 10:42:40
在Form1中有一个btnSave按钮,然后Form2中实现了public void SaveMe(){}函数,当Form1Load时创建了一个Form2实例,from2.show();
我怎么才能让Form1找到这个Form2并且执行SaveMe()函数.
Form1可以打开不同的窗口,子窗口都实现了SaveMe,
大侠这个怎么弄?用接口?怎么调用?谢谢大家
...全文
337 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingjunr 2006-05-10
  • 打赏
  • 举报
回复
whisperLin() 的方法并不可取:
因为我不能把所有可能被打开的窗口类全写成变量放在父窗口类里,
只能在Load时根据类名打开这个类,而BtnSave时,找到这个类,然后执行SaveMe
mingjunr 2006-05-10
  • 打赏
  • 举报
回复
谢谢大家我挨个试试
火麒噬日 2006-05-10
  • 打赏
  • 举报
回复
你要找到Form2直接把它变成form1的一个属性或者用一个方法把引用存起来就ok了,上面就是form2是form1的一个属性
zoujiaming 2006-05-10
  • 打赏
  • 举报
回复
把类实例化,把form2的方法和事件做成public的就可以直接调用了
火麒噬日 2006-05-10
  • 打赏
  • 举报
回复
写了个例子,不过不知道你那个函数的安全性要求如何,也不知道C#有没有友元。
Form2 form2;
private void Form1_Load(object sender, System.EventArgs e)
{

form2 = new Form2();
form2.Show();
}

private void button1_Click(object sender, System.EventArgs e)
{
form2.ShowMsg();
}

form2。。。。。。
public void ShowMsg()
{
System.Windows.Forms.MessageBox.Show("!");
}
mo_yuan_ming 2006-05-10
  • 打赏
  • 举报
回复
首先让所有的子窗体都继承同一个窗体!
在父窗体写一个虚函数SaveMe,再子窗体中实现这个方法就可以!
在from1点击保存按钮的时候只需要调用当前活动窗体的SaveMe方法(这个窗体的类型可以自适应为父窗体类型可以找到SaveMe)就可以了!
kssys 2006-05-10
  • 打赏
  • 举报
回复
使用委托,通知各个窗口Form1的btnSave被按下了~
然后大家各做各的,该干嘛就干嘛
marvelstack 2006-05-10
  • 打赏
  • 举报
回复
可以参考这里的文章,
http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx
火麒噬日 2006-05-10
  • 打赏
  • 举报
回复
动态表保存引用行不?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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