我正在编写一个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
都会显示提示。
如何解决以下问题:
答案 0 :(得分:1)
将您的第二个if
语句更改为else if
,因为现在它会将其更改为Checked = true
,然后在第二次检查中(等于true),它会立即变为Checked = false
将其切换回{{1}}