关于 c#:Windows Form 2 在关闭 Form 1 时最小化

Windows Form 2 minimizes on the closing of Form 1

这里有一个奇怪的问题。我有一个登录表单,当用户单击按钮时会打开一个注册表单:

1
2
Register registration = new Register();
registration.Show();

此时,第二个表单在登录表单前面打开——两个窗口都打开并且没有最小化,这很好。但是,当用户完成注册,注册成功时:

1
2
3
4
if (success)
{
    this.Close(); //('this' being the Registration form)
}

注册表关闭(很好),但登录表单最小化,我不知道为什么。理想情况下,我希望表单始终保持打开状态,而不必单击任务栏图标再次在屏幕上显示它。

我想它比我提供的代码更重要,如果需要的话,我很乐意提供更多。只是不确定问题出在哪里。


我现在遇到了同样的问题,甚至在使用 ShowDialog() 时也出现了这种问题。我做了一些研究,在花了很长时间弄清楚它是什么之后,我发现在主窗体中将 FormBorderStyle 设置为 System.Windows.Forms.FormBorderStyle.FixedToolWindow(或 SizableToolWindow)会发生这种情况。我也经历过(并且可以重现)一个类似的问题,如果设置了 FixedToolWindow ,即使子表单也可以最小化,所以对我来说唯一的"真正"解决方案是不要在任何表单上使用这种边框样式。

将其更改为任何其他 FormBorderStyle 值可以完全解决此问题,尽管您显然不能再使用此边框样式了。

在这里留下这个答案是为了帮助其他偶然发现同样问题的人,因为它显然在 2019 年仍然存在。


你也可以试试 showDialog(this)


虽然我不知道为什么会发生这种情况(它不应该),但 ShowDialog() 应该是这里更好的选择。