Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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#项目上关闭主窗体_C#_Forms_Winforms - Fatal编程技术网

从主窗体打开另一个窗体,然后在C#项目上关闭主窗体

从主窗体打开另一个窗体,然后在C#项目上关闭主窗体,c#,forms,winforms,C#,Forms,Winforms,我正在处理一个C#Windows窗体项目,其中主窗体是一个登录窗体,登录成功后我将调用另一个窗体,但我的问题是,如何将被调用的窗体设置为主窗体,然后关闭最初创建的窗体?您可能只想显示()新窗体,然后隐藏()登录表单 var secondForm = new MyForm(); // or whatever the name of your form is secondForm.Show(); this.Hide(); 您可以在登录表单上调用Close()而不是Hide(),但这将结束应用程序。

我正在处理一个C#Windows窗体项目,其中主窗体是一个登录窗体,登录成功后我将调用另一个窗体,但我的问题是,如何将被调用的窗体设置为主窗体,然后关闭最初创建的窗体?

您可能只想
显示()
新窗体,然后
隐藏()
登录表单

var secondForm = new MyForm(); // or whatever the name of your form is
secondForm.Show();
this.Hide();
您可以在登录表单上调用
Close()
而不是
Hide()
,但这将结束应用程序。您可以在
Program.cs
中的
Main
方法中看到这一点,它可能看起来像:

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new LoginForm());
    }
//
///应用程序的主要入口点。
/// 
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
运行(新的LoginForm());
}
一旦
Application.Run
中的初始
LoginForm
关闭,程序结束。您可以通过更改
Main()
的功能(即打开的初始表单)来更改此设置。例如,您可以将第二个表单设置为主表单,如果用户未登录,则在
form\u Load
事件中隐藏自己

因此,根据您的工作流程,从
Show()
Hide()
Close()
的角度来考虑这些表单是很有帮助的。任何时候都可以存在任意数量的表单,您只需根据您的工作流控制向用户显示哪些表单即可


如果您想显式退出应用程序,但初始表单是隐藏的,您可以从其他地方调用
application.exit()

您是否尝试过自己寻找答案?您可以很容易地找到这一点。使用
.NET
@Brian中内置的和方法这是一个winforms问题,而不是WPF@stuartd-Winforms也有这些方法。可能是复制的,或者你抢先一步,先生+1.