有人能帮我弄清楚我做错了什么吗?我已经尝试了很多方法,但无法让它在所有情况下同时工作。
我们的符号设备有多个固件版本,这会导致设备中的无线网卡出现问题。如果固件版本为86.09.0000,则可以正常工作。如果固件版本为"01.09.000",则会导致问题,因此我让它转储带有出厂固件的cab文件并重新启动设备。
感谢帮助,下面是工作代码。
if (checkBox1.Checked && myString == "86.09.0000")
{
//check box checked and correct string
}
else if ((checkBox1.Checked == false) && (myString == "86.09.0000"))
{
//check box not checked and correct string
}
else
{
// string doesn't match
}
我想你的意思是如果myString不是86.09.0000…你的最后一个else是否在错误的if语句中?
if (checkBox1.Checked && myString == "86.09.0000")
{
wipefiles();
}
else if ((checkBox1.Checked == false) && (myString == "86.09.0000"))
{
if (myThread == null)
{
label4.Visible = false;
pictureBox1.Enabled = false;
SystemIdleTimerReset();
menuItem1.Enabled = false;
myThread = new Thread(MyWorkerThread);
myThread.IsBackground = true;
myThread.Start();
}
}
else
{
MessageBox.Show("Install firmware");
}
这可能是你想要完成的吗?
Private void menuItem1_Click(object sender, EventArgs e)
{
String oemVersion = oemver.getOEMVersion();
String myVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
if (myVersion.Equals(oemVersion))
{
if (checkBox1.Checked)
wipefiles();
else
{
if (myThread == null)
{
label4.Visible = false;
pictureBox1.Enabled = false;
SystemIdleTimerReset();
menuItem1.Enabled = false;
myThread = new Thread(MyWorkerThread);
myThread.IsBackground = true;
myThread.Start();
}
}
}
else
{
MessageBox.Show("Install firmware");
}
}
只需在if语句中添加另一个"OR" ||
条件。见下文
if (checkBox1.Checked && (myString == "86.09.0000"***||myString="01.09.000"***))
{
wipefiles();
}
else if ((checkBox1.Checked == false) && (myString == "86.09.0000"***||myString="01.09.000"***))
{
if (myThread == null)
{
label4.Visible = false;
pictureBox1.Enabled = false;
SystemIdleTimerReset();
menuItem1.Enabled = false;
myThread = new Thread(MyWorkerThread);
myThread.IsBackground = true;
myThread.Start();
}
}
else
{
MessageBox.Show("Install firmware");
}
现在它对你有用了!但这并不好,因为它可能会有很多"OR
"状态。所以请从代码运行时分配mystring值!