2012-05-08 2 views
0

아래 코드에서 frmContact.ShowDialog(); 그런 다음 폼에서 [확인] 단추를 클릭하여 폼을 닫으면 닫히지 만 if 문에 frmContact.ShowDialog()가 있기 때문에 다시 열립니다. 이게 어떤 oterh 방법으로 할 수 있을까요?양식이 두 번 열립니다.

 // Button add new customer 
    private void btnAdd_Click(object sender, EventArgs e) 
    { 
     ContactForm frmContact = new ContactForm(); 

     frmContact.ShowDialog(); // Show the contact form window 

     if (frmContact.ShowDialog() == DialogResult.OK) 
     { 
      MessageBox.Show("OK", "Test", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
     } 
    } 

답변

6

그냥 첫 번째 ShowDialog을 제거하십시오.

+0

아하! 간단했다! 감사! :) –

+0

당신을 환영합니다! – Nick

8

는 단순히 첫 번째 호출 제거 ​​: (양식을 보여줍니다 코드가 반환 값을 확인하는 코드 옆에없는 경우에 특히 유용)

ContactForm frmContact = new ContactForm(); 

if (frmContact.ShowDialog() == DialogResult.OK) 
{ 
    MessageBox.Show("OK", "Test", ...); 
} 

또 다른 옵션을 사용하는 것입니다 Form.DialogResult :

ContactForm frmContact = new ContactForm(); 
frmContact.ShowDialog(); 

if (frmContact.DialogResult == DialogResult.OK) 
{ 
    MessageBox.Show("OK", "Test", ...); 
} 
2

그냥이처럼 않은 떠나 :

private void btnAdd_Click(object sender, EventArgs e) 
{ 
    ContactForm frmContact = new ContactForm(); 

    if (frmContact.ShowDialog() == DialogResult.OK) //just one call 
    { 
     MessageBox.Show("OK", "Test", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
    } 
} 
0
private void btnAdd_Click(object sender, EventArgs e) 
{ 
    ContactForm frmContact = new ContactForm(); 

    frmContact.ShowDialog(); 
} 
관련 문제