获取menuitems点击menuitem及其邻居

时间:2014-10-29 11:01:56

标签: c# menustrip

我想做以下事情: 当点击某个菜单项时,应该检查这个菜单并且直接位于它旁边的那个应该取消选中。我试着解决这个问题的第一部分如下:

private void runningToolStripMenuItem_Click(object sender, EventArgs e)
    {
        MenuItem mi = sender as MenuItem;
        mi.Checked = true;//causes nullpointer exception

        menuStrip1.Items[mi.index+1].Checked=false;
        menuStrip1.Items[mi.index-1].Checked=false;
    }

这个"解决方案"导致nullpointer异常..

1 个答案:

答案 0 :(得分:2)

您的sender值不是MenuItem。这就是你解决异常的原因。您应该转而使用ToolStripItem查看here

但是,由于ToolStripItem没有Checked属性,您可能希望将其转换为ToolStripMenuItem派生的ToolStripItem

var mi = sender as ToolStripMenuItem;
if (mi == null)
{
   return; // not a menu item
}

// do your stuff here