-1

有人可以帮我弄清楚我做错了什么。我尝试了很多方法,但无法让它在所有情况下同时工作。

我们的符号设备有多个固件版本,会导致设备中的无线卡出现问题。如果固件版本是 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
            }
4

3 回答 3

3

我假设您的意思是如果 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");
            }

这可能是你想要完成的吗?

于 2013-05-30T17:36:31.193 回答
0

只需"OR" ||在 if 语句中添加另一个条件。见下文

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 值!

于 2013-05-30T17:53:50.340 回答
0
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");
    }
}
于 2013-05-30T17:44:16.463 回答