C#在方法内部设置form.visible = false?
|
嗨,我有这行代码,我无法使其正常工作
目标很简单,将form1设置为visible = false
public static void DoActions(string Cmd){
if(Cmd == true)
{
MainForm.Visible = false;
}
}
但是我继续出现这个错误
需要一个对象引用
非静态字段,方法或
属性
通常我将被称为methond设置为static ..因此错误将消失
但是在这种情况下我该怎么办呢?
谢谢大家的帮助
\'System.Windows.Forms.Control.Invoke(System.Delegate)\'
没有找到相关结果
已邀请:
3 个回复
超可林
是静态方法而不是实例方法,而
是实例字段/属性。区别在于实例方法在定义它们的类的实例上运行,而静态方法则不行。 这意味着wheras实例方法能够通过
关键字访问其包含类的属性,字段和方法,例如:
您不能从静态方法内部执行相同的操作(考虑一下,它将在什么实例上运行?)。请注意,C#将在有意义的地方隐式假定使用
关键字(因此,上面的示例可能被编写为
)。 有关静态方法与实例方法的替代说明,请参见C#静态方法(这是面向对象编程中的一个重要概念,您应该花一些时间来正确理解)。 在您的示例中,您可能想将ѭ1更改为实例方法(通过删除静态声明):
这将允许它访问实例
的字段/属性,但是,这可能会在您尝试从另一个静态方法调用
而不提供对象实例的位置的代码中引起其他问题。
膏焦凑
{ if(Cmd == true) { MainForm.Visible = false; } } 如果需要,请在您的类中创建一个静态字段,并确保在此方法运行之前对其进行了设置。
拈吉勉犬姆