2013-05-30 41 views
-1

有人可以幫我弄清楚我做錯了什麼。我嘗試了很多方法,無法在所有情況下同時運行。如果還有複選框和字符串

我們的符號設備有多個固件版本,導致設備中的無線網卡出現問題。如果固件版本是86.09.0000,它將正常工作。如果固件版本,如果其他任何「01.09.000」它會導致問題,所以我有它轉儲出廠文件與出廠固件和重新啓動設備。

感謝您的協助,以下是工作代碼。

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 
      } 
+0

問題在哪裏?有什麼例外? – AAlferez

+0

當固件錯誤時,我的消息框不起作用。但我應該提到checkbox1被選中。 – user2190928

+0

問題是什麼?你想做什麼?你有什麼嘗試? – ThatBlairGuy

回答

3

我會假設你的意思是,如果myString的不是86.09.0000 ...是您的最後一個else錯誤的「如果」聲明?

 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"); 
      } 

這可能是你想要完成的嗎?

+0

非常感謝你的工作。 – user2190928

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"); 
    } 
} 
0

只需在您的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" ||條件!但它不好。因爲它可能會很多「OR」條件。所以請在代碼運行時分配mystring值!

+0

你不想這樣做,因爲他說01.09.000是不正確的固件,因此你不希望它將該語句的這一半標記爲真。 – Chris