如何使用ESC键来控制表单是否全屏与否

问题描述 投票:0回答:2

我试图让在使用Windows窗体应用程序和设计Visual Studio的一种形式,但是当我尝试使用ESC键最大化/最小化和删除/添加边框并未涵盖所有任务栏。

我只是测试了能够进入和退出对我可能会在未来的任何形式的全屏功能,到目前为止,我已经试过,除了合照码什么,配股代码的情况下选择作为一个单独的子程序。

Public Sub FullscreenEnterExit(ByVal sender As Object, ByVal d As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    Select Case d.KeyValue
        Case Keys.Escape
            If fullscreen = False Then
                Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None
                Me.ClientSize = New System.Drawing.Size(1920, 1080)
                Me.Controls.Add(Me.PictureBox1)
                Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
                Me.MaximumSize = New System.Drawing.Size(1920, 1080)

                Me.Name = "window"
                Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
                Me.Text = "Form1"
                Me.TopMost = True
                Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
                CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
                Me.ResumeLayout(False)
                fullscreen = True
            ElseIf fullscreen = True Then
                Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None
                Me.ClientSize = New System.Drawing.Size(1920, 1080)
                Me.Controls.Add(Me.PictureBox1)
                Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
                Me.MaximumSize = New System.Drawing.Size(1920, 1080)

                Me.Name = "window"
                Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
                Me.Text = "Form1"
                Me.TopMost = True
                Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
                CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
                Me.ResumeLayout(False)
                fullscreen = False
            End If
    End Select
End Sub

我会发布的全屏的外观图片,但你需要10的声誉。它是最大化,但并涵盖一切,但在任务栏的约3/4。帮助将非常感激。

vb.net forms visual-studio fullscreen
2个回答
0
投票

您可能有以下自己的代码困难,因为有这么多的重复。我摆脱了选择案例的。我也摆脱了所有的代码,这个很可能是在设计时设置表单的属性。

我希望你已在PictureBox声明和其他地方实例化将无法工作。我本来预计会在设计时添加了图片框,因为它没有看到有什么关系窗口状态。

我不知道为什么你正在试图改变接口SupportInitialization图片框的类型。

你有两个if和else if设置.Maximized为True。我不认为这是你的原意。

什么是ResumeLayout(假)该怎么办?

Public Sub FullscreenEnterExit(ByVal sender As Object, ByVal d As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    If d.KeyCode = Keys.Escape Then
        If fullscreen Then
            FormBorderStyle = FormBorderStyle.FixedSingle
            WindowState = FormWindowState.Normal
        Else
            FormBorderStyle = FormBorderStyle.None
            WindowState = FormWindowState.Maximized
        End If
        fullscreen = Not fullscreen
    End If
End Sub

设置窗体的KeyPreview属性为True。


0
投票

为什么这是不确定的,但它似乎仅仅是增加Me.WindowState = FormWindowState.Normal如果和别的感谢您的帮助无论如何都该上的问题。

© www.soinside.com 2019 - 2024. All rights reserved.