Windows窗体2在窗体1关闭时最小化

本文关键字:窗体 最小化 Windows | 更新日期: 2023-09-27 18:25:01

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

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

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

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

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

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

Windows窗体2在窗体1关闭时最小化

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

将其更改为任何其他FormBorderStyle值可以完全消除此问题,尽管您显然不能再使用此borderstyle了。

把这个答案留在这里,希望能帮助其他遇到同样问题的人,因为这个问题显然在2019年仍然存在。

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

您也可以尝试showDialog(此)