小编bha*_*7in的帖子

从另一个线程启用/禁用菜单项

我试图从另一个线程更改菜单项。我可以在其他控件上使用InvokeRequired / Invoke,但是由于菜单项不是Control,因此很难实现相同的功能。

对于其他控件,我正在这样做:

private delegate void SetControlEnableHandler(object sender, Boolean bValue);

private void SetControlEnabled(object sender, Boolean bValue)
{
  Control control = (Control)sender;
  if (control.InvokeRequired)
    control.Invoke(
        new SetControlEnableHandler(SetControlEnabled),
        new object[] { sender, bValue }
    );
  else
    control.Enabled = bValue;
}
Run Code Online (Sandbox Code Playgroud)

从工作线程中,我简单地调用:

this.SetControlEnabled(btnPress, true);
Run Code Online (Sandbox Code Playgroud)

它完成了工作。

有人可以帮我这里的菜单项吗?

谢谢,-Bhaskar

c#

2
推荐指数
1
解决办法
2073
查看次数

标签 统计

c# ×1