如何选中/取消选中菜单项并将窗口保持在最顶层

时间:2014-06-03 13:46:50

标签: c# asp.net checkbox

我正在编写一个C#Web应用程序,其中我有一个菜单条,可以选择让Windows始终位于顶部。它的名称是alwaysOnTopToolStripMenuItem,在页面加载期间我会检查它,因为我从表单开始处于最顶层:

private void frmMain_Load(object sender, EventArgs e)
{
       alwaysOnTopToolStripMenuItem.Checked = true;
}

然后我有以下代码允许用户根据菜单项的条件选择和更改它:

private void alwaysOnTopToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (alwaysOnTopToolStripMenuItem.Checked == true)
        {
            MessageBox.Show("TRUE - SETTING TO FALSE");
            alwaysOnTopToolStripMenuItem.Checked = false;
            this.TopMost = false;
        }
        if (alwaysOnTopToolStripMenuItem.Checked == false)
        {
            MessageBox.Show("FALSE - SETTING TO TRUE");
            alwaysOnTopToolStripMenuItem.Checked = true;
            this.TopMost = true;
        }
        }

当它被注释掉时,如果我浏览菜单选项,单击它不会取消选中它然后再次单击它不会检查它。它总是被检查。

无论我选择什么,MessageBox都会显示提示。

如何解决以下问题:

  • 更改检查以取消选中并取消选中以根据当前状态进行检查?
  • 另外,根据选择制作表格TopMost?

1 个答案:

答案 0 :(得分:1)

将您的第二个if语句更改为else if,因为现在它会将其更改为Checked = true,然后在第二次检查中(等于true),它会立即变为Checked = false将其切换回{{1}}