您好我是否使用Visual Studio在C#中创建了我的第一个Windows窗体应用程序,我遇到了一些问题。
当我打开一个新表单并关闭上一个表单时,当我运行该应用程序时,看起来它在关闭之前的表单之前打开一个新表单。 它看起来并不好,我想避免它。
UserPanel MDIUserPanel = new UserPanel(Username);
MDIUserPanel.MdiParent = this.MdiParent;
MDIUserPanel.Show();
this.Close();
我不知道出了什么问题。我会感谢任何帮助。
Wirth问候, DarQScreaM
@Edit
实际上似乎并非如此。可以说是:
我有3种形式MainForm,Login,LoggedUser。
MainForm是在Fixed Single上设置FormBorderStyle的MDI容器 登录是MainForm的子项,FormBorderStyle设置为None LoggedUser是MainForm的子代,FormBorderStyle设置为None
运行应用程序时在MainForm中创建登录表单。从容器开始,MainForm永远不会关闭。
但是当我从Login窗体移动到LoggedUser窗体时,反之亦然,它使用FormBorderStyle = Fixed Single(普通窗口窗口)创建,在0.5~秒后,它变为None。
将其编辑成没有真正帮助的地方:
MDIUserPanel.FormBorderStyle = FormBorderStyle.None;
MDIUserPanel.Show();
@ EDIT2
这个改变为我修好了。我不知道为什么在表单属性上设置它没有正常工作。看起来像form创建为FormBorderStyle.FixedSingle,然后它被更改为FormBorderStyle.None。如果我在Load中手动完成它就可以了,但是U也必须修复窗口的大小。虽然它看起来并不好。它应该从头开始工作,因为Designer中的Form属性从一开始就是这样。
private void UserPanel_Load(object sender, EventArgs e)
{
this.FormBorderStyle = FormBorderStyle.None;
this.Size = new Size(649, 357);
}
答案 0 :(得分:0)
您可以使用表单Shown event确保在关闭旧表单之前已显示新表单。
UserPanel MDIUserPanel = new UserPanel();
MDIUserPanel.Shown += ((s, ee) =>
{
this.Close();
});
MDIUserPanel.Show();
答案 1 :(得分:0)
如果您尝试关闭此表单,则是运行应用程序时打开的主窗体,那就是原因。关闭主窗体将退出您的应用程序。请尝试隐藏此表单而不是关闭它。并确保您可以退出应用程序(因为您已隐藏主窗体),只需覆盖当前窗体的关闭事件,并在其中放入“Application.Exit()”。 希望这能帮到你!
答案 2 :(得分:-1)
第一步:
this.Hide();
第二步:
MDIUserPanel.Show();