C#Windows窗体:其他类中的访问控件(标签,按钮)

时间:2014-07-20 19:48:58

标签: c# winforms button

我需要知道,除了在我的“Form1”类中,我如何访问标签或按钮。

我的问题: 我通过设计查看器创建了标签,按钮等示例。现在我可以访问了 他们在我的Form1类中。 (testlabel.Enabled == true)只是举例。

我不能做的事:访问另一个班级的标签,按钮!让我们说吧 我有一个班级“二等”,我想在那里有一个方法,那就改变了

标签的属性
`testlabel.Enabled == false`

这是不可能的,因为在那个“二等”中它是不可见的。

那么,是否有一个明显的简单解决方案可以在其他类中访问这些控件?

2 个答案:

答案 0 :(得分:2)

默认情况下会创建表单类中的每个控件,其属性Modifiers设置为Private
如果将其更改为Public,则可以从另一个类访问控件实例。

然而,这确实是一个不好的做法。弄乱控制的可见性是危险的,可能导致非常复杂的错误解决。

如果您确实需要在表单类中更改某些内容,请提供一个公共方法并调用此方法来更改目标表单的内部功能

答案 1 :(得分:2)

在该(第二类)中创建一个方法,该方法将该组件(LabelButton或您想要修改的任何内容)作为该方法的参数。

public void disableLabel(Label inputLabel)
{
    inputLabel.Enabled == false
}

创建一个类似上面的方法。

现在在form1类中,您只需要调用该方法并将Label传递给该方法Disable

SecondClass objSecondClass = new SecondClass();
objSecondClass.disableLabel(testlabel);