表格打开两次

时间:2012-05-08 10:44:56

标签: c#

在下面的代码中,我用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);
        }
    }

4 个答案:

答案 0 :(得分: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", ...);
}

答案 1 :(得分:6)

摆脱第一个ShowDialog

答案 2 :(得分: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);
    }
}

答案 3 :(得分:0)

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

    frmContact.ShowDialog();
}