【问题标题】:Close a specific Form and showing another Form on the Same Event in Visual Studio 2008在 Visual Studio 2008 中关闭特定窗体并在同一事件上显示另一个窗体
【发布时间】:2014-06-10 14:20:58
【问题描述】:

我有 2 个表格。

Form1: Containing a Button
Form2: Contains a label

我希望在按钮单击事件中 Form1 关闭并立即 Form2 出现

我的 Form1 代码是:

private void button1_Click(object sender, EventArgs e)
{            
     Form2 obj = new Form2();
     obj.Show();
     this.Close();            
}

这里的问题是,当我单击按钮时,Form2 会出现几毫秒并被 Form1 关闭。 我想通过关闭 Form1 来解决这个问题。

帮助...

【问题讨论】:

  • 不确定这是否能解决您的问题,但您是否尝试在 Form_Closing 事件中 Form2 Form1 而不是 button_click 事件中?
  • 还没有....我会试试的
  • nw 我尝试了你的想法,但在 button_click 事件中再次关闭了 this.close 代码
  • 我认为今天我不会解决我的问题:|
  • 我试过 this.hide();表格 1 obj=新表格 1(); obj.ShowDialog(); this.close();

标签: c# winforms visual-studio-2008


【解决方案1】:

Form1 关闭的原因是因为您的 Program.cs 正在创建并显示 Form1。当您关闭表单时,您的程序认为它已完成并关闭。

两种选择:

  1. 不调用Form1.Close();,而是设置Form1.Visible = false; 这将隐藏表单但不会结束其存在。

  2. 不要让 Program.cs 直接运行 Form1,而是创建一个引用 Form1Form2 的入口点类,并在 Main 方法中运行它的实例。在该课程中,您可以处理Form1.Closing 并创建您的Form2。但是你需要知道你的程序什么时候真正完成并手动退出它。

【讨论】:

  • 在你的第 2 点中。我不知道创建一个入口点类 n 在哪里创建它..
猜你喜欢
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
相关资源
最近更新 更多