C# 主窗体Panl中的窗体赋值问题

时间:2022-08-30 17:37:54
我的主窗体Panl里调用了Form2,通过Form2调用了Form3(指定了Form3的父窗体为主窗体)显示在主窗体的Panl里。
现在需要Form2传递一个值到主窗体里、另一个值传递到Form3里。传递到Form3中没问题。可给主窗体里传递是,不能实例化主窗体,一实例化,无法直接通过主窗体里的TREEVIEW加载Form3.
   如何传递到主窗体里?
   刚开始弄,请高手指点啊。。。。。  谢谢啦。。

6 个解决方案

#1


大哥我绕晕了,如果你看能不能放到静态变量里解决

#2


如何搞???  静态变量 ??
  在Form2中不把主窗体实例化就不能给主窗体赋值啊。。  
可现在主窗体一实例化 Form3就显示不出来了。

#3


在Form2中不把主窗体实例化就 不能给主窗体赋值啊。。
在主窗体里面写:
Form2 frm2=new Form2(this);//将主窗体的对象放到Form2的构造函数里面一边在Form2中赋值给主窗体frm2.Show();   



Form2里面写:
FormMain frmMain;//主窗体对象
public Form2(FormMain frm)
{
  frmMain=frm;//到这里就得到了主窗体的对象了,所以也就可以通过frmMain操作主窗体了(比如赋值)
}

#5


构造函数依赖注入并不是什么好办法,利用事件 委托比较好

Form1打开一个Form2,而Form2如何传递信息给主窗体Form1的问题,可以参考这个:

http://topic.csdn.net/u/20110831/16/bbd83b30-1e5f-4d21-bde0-1604f88d8b32.html

看1L的例子

#6


窗体代入。搞得好乱,委托代码量也不小!
喜欢用个公用变量,好读!简单!容易!

#1


大哥我绕晕了,如果你看能不能放到静态变量里解决

#2


如何搞???  静态变量 ??
  在Form2中不把主窗体实例化就不能给主窗体赋值啊。。  
可现在主窗体一实例化 Form3就显示不出来了。

#3


在Form2中不把主窗体实例化就 不能给主窗体赋值啊。。
在主窗体里面写:
Form2 frm2=new Form2(this);//将主窗体的对象放到Form2的构造函数里面一边在Form2中赋值给主窗体frm2.Show();   



Form2里面写:
FormMain frmMain;//主窗体对象
public Form2(FormMain frm)
{
  frmMain=frm;//到这里就得到了主窗体的对象了,所以也就可以通过frmMain操作主窗体了(比如赋值)
}

#4


#5


构造函数依赖注入并不是什么好办法,利用事件 委托比较好

Form1打开一个Form2,而Form2如何传递信息给主窗体Form1的问题,可以参考这个:

http://topic.csdn.net/u/20110831/16/bbd83b30-1e5f-4d21-bde0-1604f88d8b32.html

看1L的例子

#6


窗体代入。搞得好乱,委托代码量也不小!
喜欢用个公用变量,好读!简单!容易!