表单显示时的事件是什么

时间:2014-04-22 04:41:37

标签: c# winforms events

我有一个表单(MainForm),其中包含一些按钮,如btnInsertContact,btnInsertEmployemant,...

例如,当用户单击btnInsertContact时,将显示另一个表单,用户应在其中输入其联系信息。但是MainForm不会被关闭。

我想要的事件是,当用户关闭联系表单时,它就会发生。

通过此代码,将显示联系表单,但MainForm不会关闭。

    private void btnInsertContact_Click(object sender, EventArgs e)
    {
        frmContact.ShowDialog();
    }

我想在关闭联系表单后更新MainForm中的一些信息。

我尝试过Load事件,但事实并非如此,因为我的MainForm没有关闭

我尝试了Enter事件,但它没有用,我不知道为什么。

我应该处理什么事?

3 个答案:

答案 0 :(得分:2)

如果您想从联系表单中获取值,那么您应该分配控件'公共修饰语

//MAIN FORM
//First method 
private void btnInsertContact_Click(object sender, EventArgs e)
{
    frmContact.FormClosed += new EventHandler(ContactForm_Closed);
    frmContact.ShowDialog();
}
private void ContactForm_Closed(object sender, EventArgs e)
{
     //Write ur code here
}

//Second method 
private void btnInsertContact_Click(object sender, EventArgs e)
{   
    frmContact.ShowDialog();
    write ur code here.
}

答案 1 :(得分:2)

ShowDialog功能会显示模态对话框,因此阻止。用简单的英语,这意味着ShowDialog函数将不会返回(生成执行),直到对话框关闭后(用户单击“确定”,“取消”或您提供的其他按钮)。

所以您需要做的就是在调用ShowDialog之后放置同步代码。 (当然,您可能需要检查DialogResult属性以确保用户单击“确定”或“是”按钮!)

答案 2 :(得分:1)

Form.ShowDialog()是一个阻止通话。程序流程在此方法停止,直到方法返回。用户关闭表单时会返回ShowDialog()方法。

您可以在致电ShowDialog()后简单地在主表单中更新您的信息:

private void btnInsertContact_Click(object sender, EventArgs e)
{
    frmContact.ShowDialog();

    // ToDo: Insert your code for updating the main form here
}