C#WinForm:提交另一个表单后重新加载表单?

时间:2018-03-29 08:01:42

标签: c# winforms

我是winform的新手。我使用:

在form1中打开了form2形式的linklabel
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    FrmAddMov frmAddMov = new FrmAddMov();
    if(frmAddMov.ShowDialog() == DialogResult.OK)
    {
        this.Invalidate();
        //or
        this.Refresh();
    }
}

我认为form1会在我提交form2后重新加载,但不是。请告诉我正确的方法。非常感谢,如果我的英语太糟糕,我很抱歉。

2 个答案:

答案 0 :(得分:1)

将表单加载事件中的所有内容移动到FormLoad方法。您可能希望添加一些您期望表单重新加载将为您执行的其他语句。当你的第二张表格关闭时,请调用此方法。

像这样的东西

private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        FrmAddMov frmAddMov = new FrmAddMov();
        if(frmAddMov.ShowDialog() == DialogResult.OK)
        {
           FormLoad();
        }
    }

答案 1 :(得分:1)

绅士的答案会奏效,但可以改进 使用ShowDialog显示表单时,处理该表单是最佳做法,最简单的方法是using语句

private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    using (FrmAddMov frmAddMov = new FrmAddMov())
    {
        if (frmAddMov.ShowDialog() == DialogResult.OK)
        {
           FormLoad();
        }
    }
}

这样您就可以100%确定将清理frmAddMov的所有资源。