Невозможно получить доступ к отмеченному свойству элемента меню, созданного с помощью кода вне дизайнера
private void Form_Shown(object sender, EventArgs e)
{
// Load Settings
this.tsmiDuplexEnabled.Checked = Properties.Settings.Default.DuplexEnabled;
this.tsmiRemoveBlanks.Checked = Properties.Settings.Default.AutoDiscardBlanks;
this.tsmiColorMode.DropDownItems[Properties.Settings.Default.ColorMode].Checked = true;
}
Последняя строка не работает, потому что она не находит проверенное свойство, хотя есть много доступных свойств. Любая идея, как я могу получить в этом свойстве?
1 ответ
Решение
Вы должны разыграть это как ToolStripMenuItem
чтобы получить Checked
имущество. Обратите внимание, что разделители не являются ToolStripMenuItem
так что вы не можете слепо разыграть каждого DropDownItem
как ToolStripMenuItem
,
Например:
foreach (ToolStripItem tsi in item.DropDownItems)
{
if (tsi is ToolStripMenuItem)
((ToolStripMenuItem)tsi).Checked = true;
}
В вашем случае, похоже, вы не получите случайно разделитель, поэтому это должно сработать:
((ToolStripMenuItem)this.tsmiColorMode.DropDownItems[Properties.Settings.Default.ColorMode]).Checked = true;