2013-05-30 7 views
-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 
      } 
+0

어디에 문제가 있습니까? 어떤 예외? – AAlferez

+0

펌웨어가 잘못되면 내 메시지 상자가 작동하지 않습니다. 하지만 checkbox1이 선택되었음을 언급해야합니다. – user2190928

+0

무엇이 문제입니까? 너 뭐하려고? 너 뭐 해봤 니? – ThatBlairGuy

답변

3

myString이 86.09.0000이 아닌 경우를 가정합니다. 잘못된 'if'문에 최종 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 (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"); 
      } 

가 지금 당신을 위해 일하고 아래에 if 문 .See 다른 "OR" || 조건을 추가! 하지만 좋지 않습니다. 왜냐하면 " OR"상태가 많기 때문입니다. 따라서 코드가 실행될 때 mystring 값을 할당하십시오!

+0

01.09.000이 잘못된 펌웨어라고 말하는 것이므로 진술의 절반을 true로 표시하고 싶지 않으므로이 작업을 원하지 않을 것입니다. – Chris