表格在新节目之前结束

时间:2014-04-06 11:40:30

标签: c# forms visual-studio-2012

您好我是否使用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);
}

3 个答案:

答案 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();