从静态类访问表单控件

我有一个Form1有很多控件,我需要从另一个静态类访问/编辑控件值。 由于我在表单上有很多控件,因此需要一些时间来定义set并从中获取每个控件。 我想知道是否有任何方法可以在静态类中定义Form1的实例,以便我可以访问此类中的Form1的所有控件?

这是静态类的结构:

public static class Glob { public static int int1; public static int Func1() { return 10; } } 

我使用静态方法和变量的静态类,因为我需要能够从任何其他forms和类轻松访问其变量和方法。 这样我每次需要调用它时都不需要定义类的实例。 另外,借助静态类,我可以在类和表单之间共享变量。

您可以以静态forms声明:

 private static MyformType myform; public static void setmyform(MyformType myform1) { myform=myform1; } 

虽然,这个概念通常不太好,也许更好的方法是将你的表单作为参数传递给静态类中调用的函数,并通过表单属性框中的chanign acces修饰符使你的contorl应该被公开接受。

 public static void EgClearText(Textbox tb) { tb.Text=""; } public static void DoSomethingElseWithTheForm(MyformType myform) { myform.someOtherContol.Visible=false; } 

您可以将单例模式应用于表单。 请注意, Instance将返回对最后创建的MyForm实例的引用,因此您不应该有多个MyForm实例。

支持领域:

  private static MyForm _instance 

单身访问者:

  public static MyForm Instance { get { return _instance; } } 

一旦您使用该类,您可以将其引用分配给支持字段

  public MyForm() { _instance = this; } 

作为旁注; 如果您有多种技术可供选择,请查看WPF。 它具有以编程方式获取和设置UI控件值的绑定