关闭表单并在返回另一个表单时执行某些操作

时间:2010-04-19 21:22:41

标签: c#

我有一个mainForm和一个saveForm。 我从不关闭mainForm,只是让saveForm出现在顶部。

当我关闭saveForm时,我想在返回mainForm时运行一段代码。

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

除了@ benPearce的回答,如果你满足于以模态方式出现saveForm,那么你可以打电话:

所以在mainForm中,我假设您有一个保存按钮(让我们称之为btnSave)某种类型会导致saveForm,对吧?对。因此,双击该Save按钮,Visual Studio将为您创建一个事件处理程序。输入以下代码。

private void btnSave_Click(object sender, EventArgs e)
{
    saveForm sf = new SaveForm();
    if (sf.ShowDialog() == DialogResult.OK)
    {
        // do your thing
    }
}

当然,您必须确保saveForm正在设置DialogResult。例如,假设您在saveForm中有一个OK按钮,该按钮应该关闭saveForm ...在OK按钮的Click事件中,您将执行此操作:

private void btnOK_Click(object sender, EventArgs e)
{
    this.DialogResult = DialogResult.OK;
    this.Close();
}

答案 1 :(得分:2)

在mainForm中,订阅saveForm上的FormClosed事件,将您的代码放在此事件的事件处理程序中

void saveForm_FormClosed(object sender, FormClosedEventArgs e)
{
    /// code here
}