C# 如何在表单中提供静态方法?
我刚把我的修改菜单改成了公共菜单,现在我得到了这个 CS0120非静态字段、方法或属性的HomeForm.checkBeamToolStripMenuItem需要对象引用 如何在编码中提供静态方法?提前谢谢 我的代码是:C# 如何在表单中提供静态方法?,c#,forms,static,C#,Forms,Static,我刚把我的修改菜单改成了公共菜单,现在我得到了这个 CS0120非静态字段、方法或属性的HomeForm.checkBeamToolStripMenuItem需要对象引用 如何在编码中提供静态方法?提前谢谢 我的代码是: private void AnalysisForm_FormClosing(object sender, EventArgs e) { HomeForm.checkBeamToolStripMenuItem.Enabled = true; } 你犯了一个典型的错误
private void AnalysisForm_FormClosing(object sender, EventArgs e)
{
HomeForm.checkBeamToolStripMenuItem.Enabled = true;
}
你犯了一个典型的错误,似乎在StackOverflow上引发了大量类似的问题,这就是如何从一个表单引用另一个表单。(在stackoverflow上搜索,你会发现很多关于如何实现的变化) 但是这样做的基本思想是你需要一个指向另一个表单的对象引用。您要做的是访问不是对象的类“HomeForm” 因此,在创建表单的某个地方,您需要做的是将对象引用传递给分析表单,以便您可以告诉它执行操作
var homeform = new HomeForm();
var analysis = new AnalysisForm(homeform);
不过,我会为自己做完全不同的事情,首先在homeform上创建一个方法,而不是访问它的控件 HomeForm和AnalysisForm是否在单独的项目中定义?如果是,则需要在初始化期间将被调用表单(例如HomeForm)的实例传递给调用表单(AnalysisForm)。如果HomeForm打开了AnalysisForm,则只需在创建AnalysisForm时在HomeForm中连接AnalysisForm的FormClosed()事件,就不需要传递任何引用。