我有一个包含大量控件的Form1,我需要从另一个静态类访问/编辑控件值。由于我在表单上有很多控件,因此需要一些时间来定义set并从中获取每个控件。我想知道是否有任何方法可以在静态类中定义Form1的实例,以便我可以访问此类中Form1的所有控件?
这是静态类的结构:
public static class Glob
{
public static int int1;
public static int Func1()
{
return 10;
}
}
我正在使用静态方法和变量的静态类,因为我需要能够从任何其他形式和类轻松访问其变量和方法。这样我每次需要调用它时都不需要定义类的实例。另外,借助静态类,我可以在类和表单之间共享变量。
答案 0 :(得分:1)
您可以以静态形式声明:
private static MyformType myform;
public static void setmyform(MyformType myform1)
{
myform=myform1;
}
虽然,这个概念通常不太好,也许更好的方法是将你的表单作为参数传递给静态类中调用的函数,并使你的控件应该被公开,通过在属性框中的chanign acces修饰符表格
public static void EgClearText(Textbox tb)
{
tb.Text="";
}
public static void DoSomethingElseWithTheForm(MyformType myform)
{
myform.someOtherContol.Visible=false;
}
答案 1 :(得分:0)
您可以将单件模式应用于表单。请注意, Instance 将返回对最后创建的MyForm实例的引用,因此您不应该有多个MyForm实例。
支持字段:
private static MyForm _instance
Singleton访问者:
public static MyForm Instance
{
get
{
return _instance;
}
}
使用该类后,您可以将其引用分配给支持字段
public MyForm()
{
_instance = this;
}
作为旁注;如果您有多种技术可供选择,请查看WPF。它有bindings以编程方式获取和设置UI控件的值