日期:2014-05-19  浏览次数:20797 次

winform窗体访问问题,A窗体访问B窗体的控件
我做了个MDI窗体程序,我要在父窗体访问子窗体的控件.
例如:子窗体有个RichTextBoxText,我在父窗体中要设置子窗体RichTextBoxText的
字体颜色,要如果实现?

------解决方案--------------------
public 子窗体控件
------解决方案--------------------
这种情况,Public主窗体的RichTextBoxText是最佳选择,然后在你的设置窗体上需要引用这个主窗体的Form,也就是必须传入Form参数
------解决方案--------------------
在子窗体的构造函数中设吧
frmMain:
button_click()
{
frmChild frm=new frmChild(color.red);
frm.show();
}

frmChild:
string _color
frmChild(object color)
{
this._color=color;
this.richbox.backcolor=color;
}
------解决方案--------------------
也可以在父窗体搞个静态变量,并赋值它,那么到处可以用了。
------解决方案--------------------
参见我的BOLG
http://community.csdn.net/Expert/topic/5486/5486385.xml?temp=.1802484
http://blog.csdn.net/yumanqing/archive/2006/10/13/1333110.aspx

------解决方案--------------------
Public子窗体控件不安全,静态字段可取但不是面向对象的方法。
合理的是更改子窗体的构造函数
MainForm Main;
Public childForm(MainForm _Form)
{
Main = _Form;
}
在MainForm中通过
childForm Child = new childForm(this);
将MainForm作为引用类型对象传入子窗体中
并在子窗体中设定:
Child.RichTextBoxText1.属性 = Main.RichTextBoxText1.属性

------解决方案--------------------
将子窗体的控件设成public,将子窗体的实列传入父窗体,再让父窗体调用就行了