关闭当前表单并打开另一个表单

use*_*850 -1 c# winforms

我想知道如何关闭当前C#表单并打开另一个表单的最佳方法

DetailForm df = new DetailForm();
df.Show();
this.Hide();
this.Dispose();
Run Code Online (Sandbox Code Playgroud)

Jon*_*zzi 10

DetailForm df = new DetailForm();

df.Show();

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

但要小心,如果关闭主窗体,应用程序将被关闭.

EDITED

要运行此项,如果第一个表单是主表单,则需要执行更多操作.尝试这样的事情:

将Program.cs文件更改为:

public static class Program
{
    public static bool OpenDetailFormOnClose { get; set; }

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        OpenDetailFormOnClose = false;

        Application.Run(new MainForm());

        if (OpenDetailFormOnClose)
        {
            Application.Run(new DetailForm());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在主要形式中,关闭它:

private void Foo(object sender, EventArgs e)
{
    Program.OpenDetailFormOnClose = true;

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

如果OpenDetailFormOnClose在主窗体关闭后设置为true,则将调用DetailForm.