0
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;
}

最后一行不起作用,因为它没有找到选中的属性,尽管有许多可用的属性。知道我怎么能得到那个属性吗?

4

1 回答 1

3

您需要将其转换为 aToolStripMenuItem以获得该Checked属性。请注意,分隔符不是ToolStripMenuItem,因此您不能盲目地将 every 转换DropDownItemToolStripMenuItem.

例如:

foreach (ToolStripItem tsi in item.DropDownItems)
{
    if (tsi is ToolStripMenuItem)
        ((ToolStripMenuItem)tsi).Checked = true;
}

在您的情况下,您似乎不会意外得到分隔符,所以这应该可以工作:

((ToolStripMenuItem)this.tsmiColorMode.DropDownItems[Properties.Settings.Default.ColorMode]).Checked = true;
于 2014-11-26T19:16:18.583 回答