[英]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.