Получение пунктов меню щелкнуло пункт меню и его соседей
Я хочу сделать следующее: при нажатии на определенный пункт меню этот должен быть отмечен, а лежащие рядом с ним должны быть не проверены. Я попытался решить первую часть этой проблемы следующим образом:
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;
}
также это "решение" вызывает исключение нулевого указателя..
1 ответ
Решение
Ваш sender
значение не MenuItem
, Вот почему вы получаете исключение. Вы должны вместо этого привести к ToolStripItem
смотрите здесь
Однако так как ToolStripItem
не имеет Checked
собственность, которую вы можете использовать ToolStripMenuItem
который вытекает из ToolStripItem
,
var mi = sender as ToolStripMenuItem;
if (mi == null)
{
return; // not a menu item
}
// do your stuff here