【问题标题】:Minimize form when minimize button is clicked in VB.NET在VB.NET中单击最小化按钮时最小化表单
【发布时间】:2017-08-31 09:55:02
【问题描述】:

我有一个用这个属性最大化的表单:

Me.WindowState = FormWindowState.Maximized

FormBorderStyle = None。这意味着当这个表单被打开时,它不能被最小化,这是我想要的行为。

在这个主窗体中,有一个按钮可以打开另一个名为“控制台”的小窗体,在这里我可以看到主窗体抛出的一些消息。这个“控制台”表单带有FormBorderStyle = FixedSingle,这意味着可以最小化。

问题在于,当我最小化“控制台”表单时,我无法再次打开,因为主表单占据了整个屏幕。

我正在尝试做的是最小化“控制台”并能够看到它以在我希望的时候再次最大化它。

我尝试使用“控制台”形式的事件,例如 SizeChangedKeyUp,并控制按下最小化按钮的时间。

我尝试的所有事情都出错了,并且总是当我按下最小化按钮时,表单会正常最小化。

当我通过单击最小化按钮最小化表单时,是否可以看到最小化窗口向下以在需要时将其最大化?

我接受任何建议!

【问题讨论】:

  • 好吧,您必须决定如何处理它。 “查看最小化窗口以使其最大化”并不意味着什么。你有一个按钮,考虑用它来恢复窗口。或者根本不允许最小化它。或在窗口最小化时关闭窗口。或者给它一个任务栏按钮。或者使用停靠布局管理器。

标签: vb.net forms


【解决方案1】:

最后我使用了这个选项:当我点击最小化时,我只是重新定位表单并调整它的大小。也许是一个简单的手动选项,并且肯定会是更好的方法,但这给了我现在需要的东西。

@HansPassant 感谢您的帮助!我将按照您的建议查找有关停靠布局管理器的信息。

代码如下:

Private Sub frmConsole_Move(sender As Object, e As EventArgs) Handles MyBase.Move
    If Me.WindowState = FormWindowState.Minimized Then
        Me.Size = New System.Drawing.Size(247, 0)
        Me.WindowState = FormWindowState.Normal
        Me.Location = New Point(padre.GMapControl.Location.X, padre.GMapControl.Location.Y + 1000)
        Me.TopMost = True
    ElseIf Me.WindowState = FormWindowState.Maximized Then
        Me.Size = New System.Drawing.Size(447, 900)
        Me.WindowState = FormWindowState.Normal
        Me.Location = New Point(padre.Location.X + padre.GMapControl.Width * 0.9, padre.Location.Y)
    End If
End Sub

我使用主窗体的一些按钮位置来定位“控制台”窗体,但它可以是任何值。

谢谢!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-24
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
相关资源
最近更新 更多