如何使用类中的表单控件

时间:2017-02-07 07:51:31

标签: c# controls

我想使用泛型类的表单控件。在VB中非常容易,但在C#中我很难学习它。 所以搜索我找到了一个简单的答案,我在这里应对

在设计器中将控件设置为public:

  public System.Windows.Forms.Button button1;

创建一个新类,例如将其重命名为exampleClass

  public class exampleClass
  {
      public static Form1 frm;
      public static void HideButton()
      {
    frm.button1.Visible = false;
      }
  }

在Form1 InitializeComponent之后添加:

  exampleClass.frm = this;

现在,您可以从任意位置隐藏按钮:

  exampleClass.HideButton();

我现在的问题是: 如果我们想要更通用并将控制和状态(true / false)传递给类方法,例如

 exampleClass.HideButton(Control, Status) 

我们该怎么做?

提前致谢, 利亚

4 个答案:

答案 0 :(得分:2)

嗯,它是直截了当的:

public class ExampleClass
{
    public static void HideControl(Control control, bool hide)
    {
        if (control != null) control.Visible = !hide;
    }
}

你称之为

ExampleClass.HideControl(frm.Button1, true);

但是写完之后我想知道,你为什么需要这个?如果您已经拥有Button,为什么不直接致电

frm.Button1.Visible = false;

而不是另一种静态方法?

答案 1 :(得分:0)

只需按照您的描述实现它:将控件和状态作为参数传递给方法。不要忘记包括:using System.Windows.Forms;

public class Class2
{
    public static void HideButton(Control c, bool status)
    {
        c.Visible = status;
    }
}

并使用WinForm中的外部类,如下所示:

Class2.HideButton(this.button2, false);

PS。我在第一个版本中误读了。你想要一个静态方法。改变了

答案 2 :(得分:0)

为什么不简单:

public static void HideControl(Control control, bool visible)
{
    control.Visible = visible;
}

答案 3 :(得分:0)

在本例中,您有一个名为 Form1.cs 的表单和一个名为 exampleClass 的类:

在 exampleClass 中(注意:我的 Form Class 的名称 = 'Form1'):

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

在 (FormName).Designer.cs 中,所以在我的情况下 Form1.designer.cs 将适当的控件从“私有”更改为“公共”:

public System.Windows.Forms.Button button1;