【问题标题】:Disabling Menu in MainForm from Second Form [duplicate]从第二种形式禁用MainForm中的菜单[重复]
【发布时间】:2017-11-13 21:55:24
【问题描述】:

如何从 Second Form 重新启用 MainForm 中的 Menu

我用

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

但它说

HomeForm.checkBeamToolStripMenuItem 是不可访问的,因为它 防护等级

我不确定我应该将代码的哪一部分声明为Public

【问题讨论】:

  • 错误消息告诉您确切需要公开的内容:HomeForm.checkBeamToolStripMenuItem
  • 嗨 Cody 我刚刚将我的修改器菜单更改为公共,现在我得到这个“CS0120 非静态字段、方法或属性‘HomeForm.checkBeamToolStripMenuItem’需要对象引用”怎么办我在编码中提供静态方法?提前致谢

标签: c# .net winforms menu


【解决方案1】:

MainFormcheckBeamToolStripMenuItem 的保护级别默认为 private,您需要将其设为 public 或 internal 以便可以在其他类中访问,

公开您的控制权, 选择您的控件 -> 属性 -> 修饰符(将其从私有更改为公共)

并且您需要将 Mainform 的当前实例传递给 Second Form 并通过该实例访问控件。

【讨论】:

  • 现在我的修饰符是内部/公共的,两者都试过了。我收到此错误“CS0120 非静态字段、方法或属性‘HomeForm.checkBeamToolStripMenuItem’需要对象引用”
  • 您可以通过 2 种方式解决此问题,01) 如果控件是通过代码添加的,则在 HomeForm 构造函数中初始化控件,02) 或者您可以从 cs 中删除代码并从工具中拖动 menustrip 控件设计师,不要忘记更新修改器。
猜你喜欢
  • 1970-01-01
  • 2011-01-13
  • 2014-01-09
  • 2020-07-27
  • 2011-07-20
  • 1970-01-01
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多