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 也会发生同样的情况吗?无论如何可能是更好的选择。
-
嘿,这解决了它!谢谢马泽。我不能将评论标记为答案,可以吗?由于您的解决方案有效,因此不确定此处的协议。
-
这实际上不是一个答案,但因为它以某种方式解决了你的问题,所以我做了一个。
-
好东西,只要 Stack Overflow 允许,我就会将其标记为。
-
水晶球说它没有最小化而是消失在另一个应用程序的窗口后面。通常是 Visual Studio 的。当您修改 Enabled 属性并且没有尽快将其设置回 true 时会发生这种情况。
-
水晶球恐怕是错的。它确实最小化了。
我现在遇到了同样的问题,甚至在使用 ShowDialog() 时也出现了这种问题。我做了一些研究,在花了很长时间弄清楚它是什么之后,我发现在主窗体中将 FormBorderStyle 设置为 System.Windows.Forms.FormBorderStyle.FixedToolWindow(或 SizableToolWindow)会发生这种情况。我也经历过(并且可以重现)一个类似的问题,如果设置了 FixedToolWindow ,即使子表单也可以最小化,所以对我来说唯一的"真正"解决方案是不要在任何表单上使用这种边框样式。
将其更改为任何其他 FormBorderStyle 值可以完全解决此问题,尽管您显然不能再使用此边框样式了。
在这里留下这个答案是为了帮助其他偶然发现同样问题的人,因为它显然在 2019 年仍然存在。
你也可以试试 showDialog(this)
虽然我不知道为什么会发生这种情况(它不应该),但 ShowDialog() 应该是这里更好的选择。
- 这是一个奇怪的,好吧。然而, ShowDialog() 有效!