2012-05-08 6 views
0

以下のコードでは、frmContact.ShowDialog()でフォームを開きます。フォームで[OK]ボタンをクリックしてフォームを閉じると、閉じられますが、if文にfrmContact.ShowDialog()があるため、再び開きます。これはいくつかのoterh方法で行うことができますか?フォームは2回開きます

 // 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

Aha!それは簡単でした!ありがとう! :) –

+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(); 
} 
関連する問題