我有这个代码:
bool on = true;
if (on == false)
{
on = true;
silenceToolStripMenuItem.Checked = false;
}
if (on == true)
{
on = false;
silenceToolStripMenuItem.Checked = true;
}
第一次单击它时(默认情况下未选中),它会自行检查。但是,之后每次您检查它都不会取消选中。
我有这个代码:
bool on = true;
if (on == false)
{
on = true;
silenceToolStripMenuItem.Checked = false;
}
if (on == true)
{
on = false;
silenceToolStripMenuItem.Checked = true;
}
第一次单击它时(默认情况下未选中),它会自行检查。但是,之后每次您检查它都不会取消选中。
因为您将局部变量设置on
为 true 每次它永远不会进入if (on == false)
我认为您想确保在on
逻辑之外声明它,并添加 else 语句,这样它就不会变回来。
private bool on = true:
private void MyMethod()
{
if (on == false)
{
on = true;
silenceToolStripMenuItem.Checked = false;
}
else if (on == true)
{
on = false;
silenceToolStripMenuItem.Checked = true;
}
}
或者干脆
private void MyMethod()
{
silenceToolStripMenuItem.Checked = !silenceToolStripMenuItem.Checked
}
你忘了写其他部分。相反,您编写了两个 if 语句。所以它正在评估两者,只有第二个被评估为第一个 always set on = true
。
哦,顺便说一句,怎么样
bool on = true;
if (on == false)
{
on = true;
silenceToolStripMenuItem.Checked = false;
}
else
{
on = false;
silenceToolStripMenuItem.Checked = true;
}
更简单
bool on = true;
silenceToolStripMenuItem.Checked = on;
on = !on;