无法访问使用设计器外部的代码创建的菜单项的 checked 属性
本文关键字:代码 创建 菜单项 属性 checked 外部 访问 | 更新日期: 2023-09-27 18:32:12
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;
}
最后一行不起作用,因为它找不到选中的属性,尽管有许多可用的属性。知道我怎么能到达那个物业吗?
您需要将其转换为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;