C# Windows窗体应用程序在切换窗体时随机崩溃

C# Windows窗体应用程序在切换窗体时随机崩溃,c#,winforms,crash,C#,Winforms,Crash,我有多种形式,因为我有多种场景。所以当有人点击一个按钮,比如说提交你的用户名,它就会进入下一个表单。这一切都很好,但是,当我在第一个场景中时,有大约1/5的可能性,当我点击按钮时,它不会切换,它只是说“…(没有响应)”。我想这不只是第一次,但我不知道,因为我永远也过不了那里 下面是第一个表单背后的代码(第一个表单只是两个按钮,决定您要做什么,我还没有实现第二个按钮): 我不知道为什么会崩溃,但每当我点击这个按钮时,它就会停止响应,大约每五次点击一次。当然,我在VisualStudio中调试时检查

我有多种形式,因为我有多种场景。所以当有人点击一个按钮,比如说提交你的用户名,它就会进入下一个表单。这一切都很好,但是,当我在第一个场景中时,有大约1/5的可能性,当我点击按钮时,它不会切换,它只是说“…(没有响应)”。我想这不只是第一次,但我不知道,因为我永远也过不了那里

下面是第一个表单背后的代码(第一个表单只是两个按钮,决定您要做什么,我还没有实现第二个按钮):


我不知道为什么会崩溃,但每当我点击这个按钮时,它就会停止响应,大约每五次点击一次。当然,我在VisualStudio中调试时检查了它是否刚刚发生,但没有,在调试文件夹中运行.exe文件时,它崩溃了大约1/5次。有什么想法吗?

您确定是这个代码导致了问题吗?而不是
表单2中的内容?你是如何证实这一点的?在没有看到第二种形式的情况下……你可能得到的只是猜测。我的问题是…第二个表单如何“取消隐藏”第一个表单?如果不传入第一个表单或使第一个表单成为全局变量,它不可能知道关于第一个表单的任何信息。因此,当代码执行以下行:
this.Hide();
在按钮单击事件中,表单无法“取消隐藏”它本身,因此变得“丢失”。至少这是发布的代码将要做的。
using System;
using System.Windows.Forms;

namespace Chat_Room {
    public partial class SceneOne : Form {
        public SceneOne() {
            InitializeComponent();
        }
        //static void Close() {

        //}
        private void createRoomButton_Click(object sender, EventArgs e) {
            Form2 scene = new Form2();
            scene.Show();
            this.Hide();
        }
    }
}