C# 在winform显示为C后执行事件#

C# 在winform显示为C后执行事件#,c#,winforms,C#,Winforms,我有一个包含两个表单的winform应用程序,我正在从PasswordForm调用一个表单MainForm 首先我设置构造函数 private MainForm mainForm = new MainForm(); 然后我出示表格 mainForm.Show(); 但是,由于在form load事件上运行了大量SQL查询,因此在加载表单时大约有2秒钟的延迟 在显示主窗体后,我是否可以调用事件?(具体来说,我想淡出我目前使用的PasswordForm FadeOut(this, 100);

我有一个包含两个表单的winform应用程序,我正在从
PasswordForm
调用一个表单
MainForm

首先我设置构造函数

private MainForm mainForm = new MainForm();
然后我出示表格

mainForm.Show();
但是,由于在form load事件上运行了大量SQL查询,因此在加载表单时大约有2秒钟的延迟

在显示主窗体后,我是否可以调用事件?(具体来说,我想淡出我目前使用的PasswordForm

FadeOut(this, 100);
我尝试从显示的
MainForm\u
事件调用,但没有找到引用
PasswordForm
表单的方法

    private void MainForm_Shown(object sender, EventArgs e)
    {
        // THIS WILL FADE OUT THE 'MAINFORM' BUT I WANT TO FADE OUT THE 'PASSWORDFORM'
        FadeOut(this, 100);
    }
编辑两个表单使用相同的名称空间。

使用开放表单:

private void MainForm_Shown(object sender, EventArgs e)
{
    dynamic frm = Application.OpenForms["mainForm"];
    frm.FadeOut(this, 100);
}

按照此处的步骤将1表单的引用传递给另一个表单:然后调用该表单的任何公共方法。