在VB.NET中单击最小化按钮时最小化窗体

时间:2017-08-31 09:55:03

标签: vb.net forms

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

Me.WindowState = FormWindowState.Maximized

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

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

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

我要做的是尽量减少“控制台”,并且能够在我希望的时候再次看到它。

我尝试使用“控制台”表单中的事件,如SizeChangedKeyUp,并在按下最小化按钮时进行控制。

我尝试过的所有事情都出了问题,而且当我按下最小化按钮时,表格通常会最小化。

当我通过点击最小化按钮来最小化表格时,可以看到最小化窗口,以便在我想要时最大化它?

我接受任何建议!

1 个答案:

答案 0 :(得分:0)

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

@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

我已经使用了主窗体的某些按钮位置来找到“控制台”。形式,但它可以是任何价值。

谢谢!