2014-10-29 55 views
-1

我想要做以下几点: 当某个menuitem被点击时,这个应该被检查,并且旁边的那个应该被取消选中..我试图解决第一个这个问题,部分如下:获取menuitems点击menuitem及其邻居

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; 
    } 

也该“办法”导致空指针异常..

回答

2

sender值不是MenuItem。这就是为什么你有这种例外。而应该转换为以ToolStripItem看到here

但是因为ToolStripItem没有你可能需要将其转换为ToolStripMenuItemToolStripItem导出Checked财产。

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

// do your stuff here 
+0

当我把它转换到toolstripItem,没有检查属性? – Salocin 2014-10-29 12:45:21

+0

您可以尝试将其转换为ToolStripMenuItem,该ToolStripMenuItem从ToolStripItem派生并具有Checked属性。 – RaYell 2014-10-29 12:48:26