Получение пунктов меню щелкнуло пункт меню и его соседей

Я хочу сделать следующее: при нажатии на определенный пункт меню этот должен быть отмечен, а лежащие рядом с ним должны быть не проверены. Я попытался решить первую часть этой проблемы следующим образом:

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
Другие вопросы по тегам