我在关闭 C# Windows 窗体应用程序时遇到问题。它目前只会给我一个没有标题或任何东西的空白表格。 我需要找到一种方法来关闭这个未知的小窗口。
我有 2 个表单页面,一个用于登录屏幕,一个用于实际应用程序。全部由 program.cs 文件运行。
program.cs
...
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new PROG1());
}
这只是 visual studio 创建的用于运行我的程序的基本 main。
然后是主程序
PROG1.cs
...
public PROG1()
{
Login LoginForm = new Login();
DialogResult a = LoginForm.ShowDialog();
if(LoginForm.ValidLogin == 1) {
InitializeComponent();
} else {
Application.Exit(); //FAIL
}
}
您可以看到,第一个 program.cs 文件调用 PROG1.cs,它调用 login.cs 的一个实例。如果您插入有效的登录名,登录页面将关闭,主 PROG1 将正常显示。但是,如果您只需单击红色 X 即可关闭登录表单,它会出现 Prog1 和 LoginForm.ValidLogin != 1,因此它不会初始化表单并将尝试关闭表单。这只会给我留下未初始化的表格,而不是将其关闭。如果我改为执行 this.close(),它将给我一个运行时错误。
有什么想法吗?
最佳答案
将 InitializeComponent 回调放回原来的顶部。尝试使用未初始化的变量(包括试图告诉它们自行关闭)是一个坏主意。
配置 PROG1 表单的属性,以便隐藏而不是显示初始状态。 LoginForm 返回后,您的 PROG1 代码可以决定是显示自己还是关闭自己。
关于c# - 关闭 C# Windows 窗体时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/695916/