C# 加载后,应显示的表单将自动关闭

C# 加载后,应显示的表单将自动关闭,c#,winforms,C#,Winforms,我创建的加载屏幕有问题 我执行代码运行,但在进度条完成后,表单会显示,但会自动关闭 为什么会这样 namespace LogIn { public partial class Loading : Form { public Loading() { InitializeComponent(); } private void timer1_Tick(object sender, EventA

我创建的加载屏幕有问题

我执行代码运行,但在进度条完成后,表单会显示,但会自动关闭

为什么会这样

namespace LogIn 
{

    public partial class Loading : Form
    {
        public Loading()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            progressBar1.Increment(2);
            if (progressBar1.Value == 100) timer1.Stop();
            if (progressBar1.Value == 100)
            {
                this.Close();
                Login Login = new Login();
                Login.ShowDialog();

            }
        }
    }
}
在启动代码(主方法)中,您可能有如下内容:

Application.Run(new Loading());
这使得
加载
成为您的首选。当您调用
Close
时,您正在关闭加载,这将有效地结束应用程序

你真正想要的是一个概念

有关概述,请参阅和相关答案。

在启动代码(您的主要方法)中,您可能有以下内容:

Application.Run(new Loading());
这使得
加载
成为您的首选。当您调用
Close
时,您正在关闭加载,这将有效地结束应用程序

你真正想要的是一个概念


有关概述,请参阅和相关答案。

您认为
this.Close()
在做什么?如果您将加载显示为主应用程序表单,则在调用Close时,它会关闭表单,从而结束应用程序。在您的主应用程序中,可能有“Application.Start(load)”或类似的行。哦!!非常感谢。我用它作为我的主要形式!非常感谢。现在我知道如果主窗体(this.close();)类似于Application.Exit();谢谢你!我不认为它们很简单,这个.Close()只是结束了表单加载的消息循环,它仍然在静态方法Main中运行,如果该方法中有更多代码(在Application.Run(new load())之后),代码将被执行,而Application.Exit()将立即终止应用程序。他们是不同的@KingKing你是绝对正确的,因为它们是不同的-你也是对的,应用程序之后的任何代码.Run都将在应用程序结束之前执行。但是,在通常情况下(即,在Application.Run之后没有代码),效果是类似的。您认为
this.Close()
在做什么?如果您将加载显示为主应用程序表单,那么在调用Close时,它会关闭表单,从而结束应用程序。在您的主应用程序中,可能有“Application.Start(load)”或类似的行。哦!!非常感谢。我用它作为我的主要形式!非常感谢。现在我知道如果主窗体(this.close();)类似于Application.Exit();谢谢你!我不认为它们很简单,这个.Close()只是结束了表单加载的消息循环,它仍然在静态方法Main中运行,如果该方法中有更多代码(在Application.Run(new load())之后),代码将被执行,而Application.Exit()将立即终止应用程序。他们是不同的@KingKing你是绝对正确的,因为它们是不同的-你也是对的,应用程序之后的任何代码.Run都将在应用程序结束之前执行。不过,在通常情况下(即Application.Run之后没有代码),效果是类似的。