我是新来的,我有一个问题(我认为解决方案很简单,但我无法单独解决这个问题)。我必须在Userform上扔几个复选框(这很简单),但是当我写这样的内容时:
if(checkBox1.Checked)
{
MessageBox.Show("ok1");
}
else if(checkBox1.Checked && checkBox2.Checked)
{
MessageBox.Show("ok2");
}
else
{
MessageBox.Show("co nie tak");
}
始终获取" OK1" MSGBOX ...
有什么想法我做错了什么?感谢您的帮助。
if语句将始终进入第一个块。因此,如果检查了Checkbox1,您将始终获得" OK1"。您永远无法进入第二个块(" OK2"),因为如果是真的,则第一个检查也将是正确的。
我认为您想切换支票:
if(checkBox1.Checked && checkBox2.Checked)
{
MessageBox.Show("ok2");
}
else if(checkBox1.Checked)
{
MessageBox.Show("ok1");
}
else
{
MessageBox.Show("co nie tak");
}
您可能还希望通过添加字符串来建立您的字符串。 =表示添加到字符串的末端。
我的示例代码只是一个示例,因为我真的不知道您要做什么,但这可能会给您一些想法。
if (checkBox1.checked )
{
mic.HTMLBody = "1) Example1";
}
if ( checkBox2.checked )
{
mic.HTMLBody += "<br>"""2) Example2";
if ( ComboBox2.Text == "Pan" )
{
mic.HTMLBody += "<br>Pana";
}
}
从代码中我查看checkbox1。检查是否为true,然后" OK1"显示,第二次评估将永远不会避免。如果checkbox1.checked为false,则只能评估第三个选项,并且绝对不要评估第二个选项。应该更像:
if (checkBox1.Checked)
{
if (checkBox2.Checked)
{
MessageBox.Show("ok2");
}
else
{
MessageBox.Show("ok1");
}
}
else
{
MessageBox.Show("co nie tak");
}
当前编写,它不可能输入else if
,因为每当else if
条件为真时,if
条件也是正确的。
它从上到向下,输入了第一个,其余的都被忽略了。
相反,您应该按以下方式切换其位置:
if(checkBox1.Checked && checkBox2.Checked)
{
MessageBox.Show("ok2");
}
else if(checkBox1.Checked)
{
MessageBox.Show("ok1");
}
else
{
MessageBox.Show("co nie tak");
}
有点不清楚您真正想要显示的内容,但是如果您希望它首先显示ok1
,然后可以显示ok2
,则可以这样做:
if(checkBox1.Checked)
{
MessageBox.Show("ok1");
if(checkBox2.Checked) {
MessageBox.Show("ok2");
//MessageBox.Show("ok1 ok2"); //If you want to show them both at the same time
}
}
else
{
MessageBox.Show("co nie tak");
}
我在控制台上尝试了这个,这可能是您需要的逻辑。内联评论将使您对正在做什么的事情有一点了解:
check1 = true;
check2 = true;
if (check1)
{
if (check2)
{
// Prints if BOTH check1 and check2 are TRUE
Console.WriteLine("ok2");
}
else
{
// Prints if ONLY check1 is TRUE
Console.WriteLine("ok1");
}
}
else
{
// Prints if BOTH check1 and check2 are FALSE
Console.WriteLine("co nie tak");
}
bool Check = checkBox1.Checked;
bool Check2 = checkBox2.Checked;
if (Check == true && Check2 == true)
{ MessageBox.Show("ok 1 & 2"); }
if (Check == true)
{ MessageBox.Show("ok 1"); }
if (Check2 == true)
{ MessageBox.Show("ok 2 "); }
else
{ MessageBox.Show("Not Checked"); }