【问题标题】:Preventing to Close the First Form by Closing the Other通过关闭另一个表单来防止关闭第一个表单
【发布时间】:2016-06-24 04:33:21
【问题描述】:

早安。

我有一个包含 3 个表单的程序,它们是。

MainMenu
Form1
Form2

我在MainMenu 中有一个MenuStrip,当我单击它时会显示Form1,其代码是简单的Form1.show 现在我有一些与Form2 连接的程序让我说使用Form1 打开Form2,所以Form1 仍然打开,Form2 在它的顶部,当我在Form2 中完成时,我将使用Button 关闭它,命名为 Close。

但我担心的是,当我关闭它时,Form1 会自动隐藏,我不希望这种情况发生。

这是我在Button 中的代码关闭

'Do some MySQL Command
Me.close

我的问题是,当第二个表单关闭时,如何防止第一个表单隐藏。通常在第二形态发生变化时发生。

我希望有人能帮助我解决这个问题。 TYSM 以获取未来帮助。

【问题讨论】:

  • 关闭一个表单不会导致另一个表单隐藏。大概该按钮位于MainMenu 表单上,因此单击它将使该表单获得焦点。这就是它应该如何工作的方式。如果你想给另一个表单焦点,那么你需要调用它的Activate 方法。
  • 请参阅编辑后的帖子
  • 例如,当 Form2 关闭 Form1 最小化时,我在 Form1 的顶部有 2 个 Forms Form2

标签: vb.net forms winforms


【解决方案1】:

首先你没有提到任何导航表单的代码。

根据你提供的信息,我已经放了一些可能对你有帮助的代码。

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    Form1.BringToFront()
End Sub

将上述代码放入Form2代码中。

如果您想在 Form2 关闭时停止最小化 Form1,那么您可以使用以下代码。

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    Form1.WindowState=FormWindowState.Maximized     
    Form1.BringToFront()
End Sub

【讨论】:

  • BringToFront 用于影响子控件的 z 顺序。如果你真正想要的是一个具有焦点的顶级表单,那么你调用它的Activate 方法。
  • 请参阅编辑后的帖子
  • 例如,当 Form2 关闭 Form1 最小化时,我在 Form1 的顶部有 2 个 Forms Form2
  • 为了停止 Form1 以最小化我已经更新了我的答案
猜你喜欢
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多