Проблема со ссылкой на элемент ContextMenuStrip - PullRequest
0 голосов
/ 17 декабря 2009

Я искал здесь и не нашел именно то, что ищу.

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

Верхний уровень: Настройки Средний уровень: обработка Нижний уровень: ручная обработка

Я не могу найти способ доступа к элементу нижнего уровня, чтобы установить его как отмеченный или не отмеченный.

Может кто-нибудь помочь, пожалуйста?

1 Ответ

3 голосов
/ 17 декабря 2009

Не уверен, что я следую за вопросом. Знаете ли вы название «Предмет нижнего уровня»? Если это так, просто назовите его по имени:

bottomLevelMenuItem.Checked = true;

Если вы не знаете имя, вы можете просмотреть коллекцию элементов управления Items или DropDownItems (в зависимости от типа MenuItem), чтобы найти нужное имя.

foreach (ToolStripMenuItem stripItemCollection in MenuStrip.Items)
{
    ...
}

Edit:

Правильно, ToolStripItem не имеет отмеченного свойства. Это базовый класс для многих объектов панели инструментов, некоторые из которых не поддерживают проверку. В этом случае вы, вероятно, имеете дело с ToolStripMenuItem s, которые имеют свойство флажка.

Попробуйте это:

ToolStripMenuItem menuItem = this.cmuSystemTray.Items["TLSETTINGS"] as ToolStripMenuItem;
if (menuItem != null)
{
    menuItem.Checked = true;
}

Опять же, хотя каждый Control (ToolStripMenuItem) имеет имя, связанное с ним, поэтому было бы проще использовать исходную переменную, а не проходить через свойство Items полосы контекстного меню.

TLSETTINGS.Checked = true; // Assuming TLSETTINGS is the name
...