我想做以下事情: 当点击某个菜单项时,应该检查这个菜单并且直接位于它旁边的那个应该取消选中。我试着解决这个问题的第一部分如下:
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异常..
答案 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