假设我创建了一个窗口表单Form.cs
。它有一些控件(label1,label2,button1,button1等)。我还在New_Form.cs
下创建了一个新窗口Form.cs
。现在我想访问New_Form.cs
中的label1,label2,button1。我怎么能这样做?
答案 0 :(得分:2)
我不想冒犯,但我认为使用其他形式的控制并不是一个好的设计。
在我的观点中,将一个类(在这个问题form1
)中与另一个类的内部实现结合起来是不好的(`form2'的控件。如果你,对于某些人原因,必须改变该类的内部设计(例如,显示具有不同控件的数据),你必须改变其他类。这使得编码(当然还有错误搜索)非常困难。
如果需要在两个类之间交换数据,我更倾向于使用publioc属性。在内部设计中,您可以将它们附加到控件,但是这个“耦合”保持在同一个类中)
答案 1 :(得分:1)
虽然这可能是糟糕的设计,但您可以通过将其公开,然后像这样访问它们来访问另一个表单中的属性:
Form1 frm = new Form1();
Form1.button1.Visible = false;
此处还有一个与你的问题有关的msdn页面
http://msdn.microsoft.com/en-us/library/f6525896%28v=vs.90%29.aspx
答案 2 :(得分:1)
您可以通过在Parent
表单中将其设置为公共属性来访问所需的属性。不确定为什么你会想要按钮,如果你想为点击执行一些事情,那么你应该将逻辑封装到不同的方法中并且他们进行调用。
如果要传递的细节较少,则为新表单创建构造函数,以接受这些值
ChildForm child = new ChildForm([label1], [label2])
或
ChildForm child = new ChildForm([parent form reference]) // so you could access require components