我是新来的,我有一个问题(我认为解决方案很简单,但我不能单独解决这个问题)。我必须在userform上抛出一些复选框(这很简单),但是当我写这样的东西时:
if(checkBox1.Checked)
{
MessageBox.Show("ok1");
}
else if(checkBox1.Checked && checkBox2.Checked)
{
MessageBox.Show("ok2");
}
else
{
MessageBox.Show("co nie tak");
}
总是得到“ok1”MsgBox ......
任何想法我做错了什么?谢谢你的帮助。
答案 0 :(得分:1)
if语句将始终进入第一个为true的块。因此,如果选中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";
}
}
答案 1 :(得分:1)
从代码我看到checkbox1.checked是否为真然后#34; ok1&#34;应该展示,第二次评估永远不会被废弃。如果checkbox1.checked为false,则仅评估第三个选项,并且永远不应评估第二个选项。应该更像是:
if (checkBox1.Checked)
{
if (checkBox2.Checked)
{
MessageBox.Show("ok2");
}
else
{
MessageBox.Show("ok1");
}
}
else
{
MessageBox.Show("co nie tak");
}
答案 2 :(得分:0)
正如目前所写,它不可能进入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");
}
答案 3 :(得分:0)
我在控制台上试过这个,这可能是你需要的逻辑。内联注释将为您提供有关正在做什么的一些见解:
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");
}
答案 4 :(得分:-2)
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"); }