2012-05-08 42 views
0

在下面的代碼中,我用frmContact.ShowDialog()打開一個表單。然後當我通過單擊關閉窗體中的確定按鈕關閉窗體時,它會再次打開,因爲我在if語句中有frmContact.ShowDialog()。這可以用另外的方式完成嗎?表單打開兩次

 // 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(); 
}