Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows窗体:在运行时更改应用程序主窗口_C#_.net_Winforms_Mainwindow - Fatal编程技术网

C# Windows窗体:在运行时更改应用程序主窗口

C# Windows窗体:在运行时更改应用程序主窗口,c#,.net,winforms,mainwindow,C#,.net,Winforms,Mainwindow,通常我会做Application.Run(myMainForm) 但我想这样做: MyForm1 f = new MyForm1(); f.Close+=OnOpenOverviewWin(); Application.Run(f); void OnOpenOverviewWin() { MyOverViewForm f = new MyOverViewForm (); Application.Run(f); // i want to do this Application.NewMainWi

通常我会做Application.Run(myMainForm)

但我想这样做:

MyForm1 f = new MyForm1();
f.Close+=OnOpenOverviewWin();
Application.Run(f);

void OnOpenOverviewWin()
{
MyOverViewForm f = new MyOverViewForm ();
Application.Run(f); // i want to do this
Application.NewMainWindow = f; // or something like that
}
将属性设置为


除了关闭应用程序外,主窗口是否没有其他含义?如果关闭第一个打开的窗口,主窗口属性将发生更改。您还可以在关闭处理程序中将主窗口设置为新窗口,而不是更改关闭模式。哪个主窗口属性?应用程序类没有这样的东西。对不起,我看错了应用程序类。你说得对,没有MainWindow属性。该属性是在WPF版本的应用程序类中添加的,因此您必须更改ShutdownMode。ShutdownMode属性也仅在WPF应用程序类上定义。
MyForm1 f = new MyForm1();
f.Close += OnOpenOverviewWin();
Application.ShutdownMode = ShutdownMode.OnLastWindowClose;
Application.Run(f);

void OnOpenOverviewWin()
{
  MyOverViewForm f = new MyOverViewForm ();
  f.Show();
}