【问题标题】:How to provide Static method in Forms?如何在表单中提供静态方法?
【发布时间】:2017-06-19 09:06:06
【问题描述】:

我刚刚将我的修改器菜单更改为公开,现在我得到了这个

"CS0120 非静态字段、方法或属性 'HomeForm.checkBeamToolStripMenuItem" 需要对象引用

如何在我的编码中提供静态方法?在此先感谢

我的代码是:

private void AnalysisForm_FormClosing(object sender, EventArgs e)
 {
    HomeForm.checkBeamToolStripMenuItem.Enabled = true;
 }

【问题讨论】:

  • HomeForm 和 AnalysisForm 是在单独的项目中定义的吗?如果是,则需要在初始化期间将被调用表单(例如 HomeForm)的实例传递给调用表单(AnalysisForm)。
  • 如果 HomeForm 打开了 AnalysisForm,那么只需连接到 AnalysisForm 的 FormClosed() 事件,在 HomeForm 中创建 AnalysisForm 时,您不需要传递任何引用完全没有。

标签: c# forms static


【解决方案1】:

您犯了一个经典错误,似乎在 StackOverflow 上引发了大量类似的问题,即如何从另一个表单引用一个表单。 (在 stackoverflow 上搜索,你会发现很多关于如何做到这一点的变化)

但是这样做的基本想法是你需要一个对其他形式的对象引用。您要做的是访问不是对象的“HomeForm”类。

所以在您创建表单的某个地方,您需要做的是将对象引用传递给分析表单,以便您可以告诉它执行操作。

var homeform = new HomeForm();
var analysis = new AnalysisForm(homeform);

不过,我会为自己做完全不同的事情,首先在 homeform 上创建一个方法,而不是访问它的控件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 2021-12-09
    • 2015-11-03
    • 2020-12-05
    相关资源
    最近更新 更多