0

我需要动态禁用菜单项的子项。如果我在菜单栏中单击“启动时运行”,则应禁用“禁用启动”选项如何实现此目的。我已附上快照以供参考

// Run At Startup
 private void runAtStartupToolStripMenuItem_Click(object sender, EventArgs e)
 {
   rkApp.SetValue("TimeCalculation", "\"" + Application.ExecutablePath.ToString() + "\"");
   Environment.GetFolderPath(Environment.SpecialFolder.Startup);
   menuStrip1.Items["disableStartupToolStripMenuItem"].Enabled = false;

 }

 //Disable Startup
 private void disableStartupToolStripMenuItem_Click(object sender, EventArgs e)
 {
   rkApp.DeleteValue("TimeCalculation", false);
   menuStrip1.Items["runAtStartupToolStripMenuItem"].Enabled = false;
 }

快照:

在此处输入图像描述

4

1 回答 1

0

Use a flag:

private bool flag = true;

private void runAtStartupToolStripMenuItem_Click(object sender, EventArgs e)
{
    //...
    flag = true;
}

private void disableStartupToolStripMenuItem_Click(object sender, EventArgs e)
{
    //...
    flag = false;
}

Then use the DropDownOpening event to enable/disable the items.

private void bToolStripMenuItem_DropDownOpening(object sender, EventArgs e) {
    runAtStartupToolStripMenuItem.Enabled = !flag;
    disableStartupToolStripMenuItem.Enabled = flag;
}

If you want to hide the item use Available:

    runAtStartupToolStripMenuItem.Available= !flag;
    disableStartupToolStripMenuItem.Available= flag;
于 2013-07-11T07:16:01.453 回答