c# 应用程序的组织

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:23:34
还是这个问题
在应用程序中,在主窗体里调用子窗体,子窗体要访问主窗体里面的控件,而且访问量很大....因为主窗体很大所以不能在子窗体里面建立主窗体的实例.....如果把主窗体的控件对象建立成static呢??该怎么建立,直接声明成static好象不行哦~~~~~~
我该怎么半呢

可用构造函数啊.
你在打开子窗体的时候一般会这样写:
frmChild frm=new frmChild();
首先你要明白frmChild()是子窗体的构造函数,new frmChild()表示对子窗体构造函数建立一个引用.而构造函数是支持重载的,所以可以传递参数.
例如子窗体中构造函数为
public frmChild(TextBox txt){}
参数为TextBox类型,所以在打开新窗体时可以这样
frmChild frm=new frmChild(TexbBox1)
TextBox1为父窗体的一个文本框,这样就可以在子窗体中获得父窗体的文本框的引用了.public frmChild(TextBox txt){MessageBox.Show(txt.Text)}就可以显示父窗体文本框的值了

"主窗体很大所以不能在子窗体里面建立主窗体的实例"
如果调用方不多,可以采用上述你说的办法啊,只需要在调用方保持被调用方的引用就可以了,不需实例化。
如果调用方很多,我想还是static一下比较好,应该是可以static的

怎么可能在子窗体中建立主窗体的实例呢?

你已经有了主窗体,要对她进行访问

那最多只是在子窗体内添加一个对他的引用啊

Form f = MainForm;

这样不会New一个对象出来的