[英]Can't access checked property of menu item created with code outside the designer
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
转换为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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.