2013-05-12 2 views
1

trybox를 사용하여 R1P1 체크 박스를 체크하지 않으면 메시지 박스가 나타나기를 원합니다. 그러나 나는 잡으려고 무엇을 넣어야할지 전혀 모른다.어떤 실행을 사용해야합니까?

private void button2_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      if (R1P1.Checked) 
      { 
       string Plats1 = "R1P1"; 
       TxtP.Text = Plats1; 
      } 
      else 
      { 
       TxtP.Text = null; 
      } 
     } 
     catch (???) 
     { 
      MessageBox.Show("Hey"); 
     } 

catch (R1P1.Checked == false;) 시도했지만 작동하지 않습니다. 프로그램에서 티켓 시스템에 대한 확인란이 여러 개 있는데 그 중 하나를 선택하지 않고 계속 클릭하면 계속 확인란이 표시됩니다.

+2

- 당신은 * * 예외를 잡을 수있어. 여기에는 예외 또는 예외의 필요성에 대한 징후가 없습니다. –

+0

Try/Catch 블록은 일반적으로 흐름 제어에 사용되지 않습니다. 그 (것)들이 같이 이용 될 수있는 몇몇 상황이 당신에 의하여 그러나 그 (것)들의 것이 아니다. – Dirk

+1

이 특정 시나리오에서 try and catch를 사용할 수없는 것 같습니다. 답변과 의견에 감사드립니다! – user2367396

답변

2

를 뭐죠위한 시도 캐치? 작동하지 않습니까?

private void button2_Click(object sender, EventArgs e) 
{ 

     if (R1P1.Checked) 
     { 
      string Plats1 = "R1P1"; 
      TxtP.Text = Plats1; 
     } 
     else 
     { 
      TxtP.Text = null; 
      MessageBox.Show("Hey"); 
     } 
} 

Good Point Jon! AFAIK {}은 자체 범위가있는 코드 블록을 정의합니다. 일반적으로 닫는 대괄호를 누를 때 더 이상 존재하지 않는 코드 블록은 더 이상 존재하지 않습니다. 이 문자열은 Plats1이 사용되지 않으며 다른 곳에서 볼 수 없습니다.

같은이를 만들기 : 당신은 조건을 잡을 수없는

private void button2_Click(object sender, EventArgs e) 
{ 
     if (R1P1.Checked) 
     { 
      TxtP.Text = "R1P1"; 
      //anything declared here (i.e. a new variable) 
     }//is gone by here 
     else 
     { 
      TxtP.Text = null; 
      MessageBox.Show("Hey"); 
     } 
} 
+1

무의미한 지역 변수'Plats1'을 사용하지 않는 것이 이상적입니다. :) –

+0

try와 catch를 사용하는 지점은 더 높은 등급입니다 ... – user2367396

+1

@ user2367396 : 그러면 예외 *가 적절한 다른 예제를 찾아야합니다. –

3

이 경우 블록 try{}catch{}에는 아무런 의미가 없습니다.

왜 예외가 발생하나요? 이 확인되지 않은 경우

이미 을 알고있다 - 당신의 else 절에 메시지 상자를 호출

if (R1P1.Checked) 
{ 
    TxtP.Text = "R1P1"; 
} 
else 
{ 
    TxtP.Text = ""; 
    MessageBox.Show("Hey"); 
} 
관련 문제