我有一个表单(MainForm),其中包含一些按钮,如btnInsertContact,btnInsertEmployemant,...
例如,当用户单击btnInsertContact时,将显示另一个表单,用户应在其中输入其联系信息。但是MainForm不会被关闭。
我想要的事件是,当用户关闭联系表单时,它就会发生。
通过此代码,将显示联系表单,但MainForm不会关闭。
private void btnInsertContact_Click(object sender, EventArgs e)
{
frmContact.ShowDialog();
}
我想在关闭联系表单后更新MainForm中的一些信息。
我尝试过Load事件,但事实并非如此,因为我的MainForm没有关闭
我尝试了Enter事件,但它没有用,我不知道为什么。
我应该处理什么事?
答案 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
}