日期:2014-05-18  浏览次数:20691 次

窗体调用控件问题?
有两个窗体:FrmMain,from2
FrmMain   上有个控件combox1
我想在from2上点按扭就可以在FrmMain上的combox1里添加内容。

我是这么做的,设置combox1的modifiers属性为public
 
FrmMain   frm   =   new   FrmMain();
                     
frm.combox1.Text   =   "dfsfsfsfddfg ";

我这样写却不行,加上这句才行:frm.show();但这是显示窗体啊
应该怎么写才行?

------解决方案--------------------
不懂,你主窗体不显示那你from2添加的东西要添加到哪去?


FrmMain frm = new FrmMain();
frm.show();
frm.combox1.Text = "dfsfsfsfddfg "
------解决方案--------------------
FrmMain frm = new FrmMain();这是构建了一个新的对象,如果你原有FrmMain,当然不能更新。
如果你原来没有FrmMain,就是在这里第一次创建的话,那么就这样就可以了。
如果你原来有FrmMain,你要首先获得原来的对象,
FrmMain frm = Applications.OpenForms[ "FrmMain "];
这样再赋值就可以用Refresh更新了,注意,你的控件应该都是PUBLIC的,要去更改之后才能引用。

------解决方案--------------------
窗体间通信:

http://topic.csdn.net/t/20041027/19/3497195.html
------解决方案--------------------
那你就不要new FrmMain(),用个方法(构造函数,属性)把frmMain传给from2

或者由from2弹出事件给frmMain吧
------解决方案--------------------
好久没来了……居然还没结贴?不会还没解决吧?

FrmMain frm = Application.OpenForms["FrmMain"];
错误 2 无法将类型“System.Windows.Forms.Form”隐式转换为“LightningForecast.FrmMain”。存在一个显式转换(是否缺少强制转换?)

那就强制类型转换一下啊
FrmMain frm = (FrmMain)Application.OpenForms["FrmMain"];