如何从另一个Windows窗体访问一个Windows窗体控件

本文关键字:Windows 窗体 控件 一个 访问 另一个 | 更新日期: 2023-09-27 18:16:00

假设我创建一个窗体Form.cs。它有一些控件(label1, label2, button1, button1等)。我还在Form.cs下创建了一个新的窗体New_Form.cs。现在我想访问New_Form.cs中的label1, label2, button1。我该怎么做呢?

如何从另一个Windows窗体访问一个Windows窗体控件

我不想冒犯你,但是我认为使用另一种形式的控件不是一个好的设计。

在我看来,将一个类(在这个问题中form1)耦合到另一个类(' form2 '的控件)的内部实现是不好的。如果出于某种原因,必须更改该类的内部设计(例如,使用不同的控件显示数据),则也必须更改其他类。这使得编码(当然还有错误搜索)相当困难。

如果需要在两个类之间交换数据,我更愿意使用public Properties。在内部设计中,您可以将它们附加到控件上,但随后这种"耦合"将留在同一个类中)

虽然这可能是糟糕的设计,但您可以通过将属性设置为public,然后像这样访问它们来访问另一个表单中的属性:

Form1 frm = new Form1();
Form1.button1.Visible = false;

这里还有一个msdn页面关于你的问题

http://msdn.microsoft.com/en-us/library/f6525896%28v=vs.90%29.aspx

您可以通过将它们设置为Parent表单中的公共属性来访问所需的属性。不确定为什么你想要按钮,如果你想要一些东西被执行点击,那么你应该封装逻辑到单独的方法和他们进行调用。

如果要传递的详细信息较少,则为新表单创建可以接受这些值的构造函数

ChildForm child = new ChildForm([label1], [label2])

ChildForm child = new ChildForm([parent form reference]) // so you could access require components