是否可以创建打开/关闭表单的自定义方法?

Rob*_*ers 3 c# winforms

所以我有这三个按钮点击.

private void btn_OpenNotePad_Click(object sender, EventArgs e)
{
    this.Hide();

    Form2 forma_NotePad = new Form2();
    forma_NotePad.ShowDialog();

    this.Close();
}

private void btn_OpenPaint_Click(object sender, EventArgs e)
{
    this.Hide();

    Form3 forma_Paint = new Form3();
    forma_Paint.ShowDialog();

    this.Close();
}

private void btn_ContactAdmin_Click(object sender, EventArgs e)
{
    this.Hide();

    Form4 forma_ContactAdmin = new Form4();
    forma_ContactAdmin.ShowDialog();

    this.Close();
}
Run Code Online (Sandbox Code Playgroud)

它们都非常相似,所以我想到可以为它们创建一种方法吗?就像是:

private void OpenForm(parameter1, parameter2)
{
    this.Hide();

    parameter1 parameter2 = new parameter1();
    parameter2.ShowDialog();

            this.Close();
}
Run Code Online (Sandbox Code Playgroud)

所以我可以打电话给他们

OpenForm(parameter1,parameter2);
Run Code Online (Sandbox Code Playgroud)

并使我的代码更短,更清洁.

Dar*_*rov 6

当然,您可以在单独的方法中重构此功能:

private void btn_OpenNotePad_Click(object sender, EventArgs e)
{
    Open<Form2>();
}

private void btn_OpenPaint_Click(object sender, EventArgs e)
{
    Open<Form3>();
}

private void btn_ContactAdmin_Click(object sender, EventArgs e)
{
    Open<Form4>();
}

private void Open<TForm>() where TForm: Form, new()
{
    this.Hide();
    new TForm().ShowDialog();
    this.Close();
}
Run Code Online (Sandbox Code Playgroud)