0

以下のコードでは、frmContact.ShowDialog(); でフォームを開きます。そして、フォームの[OK]ボタンをクリックしてフォームを閉じると、フォームは閉じますが、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);
        }
    }
4

4 に答える 4

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", ...);
}
于 2012-05-08T10:46:46.890 に答える
6

最初のを取り除くだけですShowDialog

于 2012-05-08T10:46:32.713 に答える
2

次のように、 2番目のifをそのままにしておきます。

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);
    }
}
于 2012-05-08T10:47:15.690 に答える
0
private void btnAdd_Click(object sender, EventArgs e)
{
    ContactForm frmContact = new ContactForm();

    frmContact.ShowDialog();
}
于 2012-05-08T10:49:59.807 に答える