我有一个包含大量控件的Form1,我需要访问/编辑来自另一个静态类的控件值。因为我在表单上有很多控件,所以需要一些时间来定义、设置和获取它们中的每一个。我想知道是否有任何方法可以在静态类中定义Form1实例,以便能够访问该类中的所有Form1控件?
下面是静态类的结构:
public static class Glob
{
public static int int1;
public static int Func1()
{
return 10;
}
}我使用带有静态方法和变量的静态类,因为我需要能够轻松地从任何其他形式和类访问它的变量和方法。这样,每次需要调用类时,我都不需要定义类的实例。此外,借助静态类,我可以在类和窗体之间共享变量。
发布于 2014-06-24 22:20:45
您可以以静态形式声明:
private static MyformType myform;
public static void setmyform(MyformType myform1)
{
myform=myform1;
}尽管这个概念通常不是很好,但更好的方法可能是将您的表单作为参数传递给静态类中调用的函数,并将您应该访问的控件公开,方法是在该表单的propertis框中使用
public static void EgClearText(Textbox tb)
{
tb.Text="";
}
public static void DoSomethingElseWithTheForm(MyformType myform)
{
myform.someOtherContol.Visible=false;
}发布于 2014-06-24 22:27:40
您可以将单例模式应用于表单。注意,实例将返回对最后创建的MyForm实例的引用,因此不应该有多个MyForm实例。
支持字段:
private static MyForm _instance辛格尔顿访问者:
public static MyForm Instance
{
get
{
return _instance;
}
}一旦使用了该类,就可以将其引用分配给后备字段。
public MyForm()
{
_instance = this;
}作为附带说明;如果您有选择的技术,请查看WPF。它有绑定以编程方式获取和设置UI控件的值。
https://stackoverflow.com/questions/24397255
复制相似问题