我知道如何制作最大化按钮,但是如何在 VB 中制作恢复按钮?

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

我只是想知道如何在我的表单中制作“恢复”按钮?但是按钮上从最大化变为恢复?

vb.net windows winforms maximize-window
3个回答
1
投票

在标准的Windows用户界面中,最大化和恢复按钮是合一的。它们都由一组三个按钮中的中心按钮控制

在正常的非最大化窗口中,中心按钮是一个“盒子”形状,单击它会使窗口最大化:

     

在最大化窗口中,中心按钮更改为显示堆叠图块,单击它会将窗口恢复到非最大化状态:

      

换句话说,中心的“最大化”按钮是一个切换按钮。最大化窗口的唯一选项是恢复它,而普通窗口的唯一选项是最大化它。您永远无法最大化最大化的窗口,也永远无法恢复正常的非最大化窗口。因此,为此设置单独的按钮会浪费空间。他们只是坐在那里永远变灰。

因此,将表单的

MaximizeBox
属性 设置为 True 就是您想要做的。您可以在设计器的属性窗口中执行此操作,也可以使用表单类的
New
方法中的代码:

Me.MaximizeBox = True

如果您真的想要有第四个按钮,则必须自己绘制窗口的标题栏。这是一项“真正”的大工作,可能不是您愿意从事的工作,因为您在评论中指出您是 VB.NET 的新手。大多数工作与 VB.NET 关系不大,而更多地与 Win32 编程有关。除非您已经是专业的 Win32 程序员,并且正在迁移到 VB.NET 作为新语言,否则您将需要接受默认行为。对于从 Windows Vista 开始尝试自定义标题栏的开发人员来说,情况变得更糟 — Aero Glass 效果不适合自定义。我不知道 Windows 8 的表现如何,但我怀疑它会变得更容易。如果您确实对此感兴趣,您可以在线找到大量信息,甚至可以在 Stack Overflow 上找到相关问题(例如,hereherehere)。 老实说,即使您是专业的 Win32 程序员,我也想说您应该接受默认行为

无论如何

。即使您认为这并不理想,但这也是您的用户所习惯的。系统上的所有其他应用程序都以这种方式运行。


1
投票

Private Sub btnMaximize_Click(sender As Object, e As EventArgs) Handles btnMaximize.Click btnMaximize.Image = Image.FromFile("C:\Resources\ResbtnRestore.png") If Me.WindowState = FormWindowState.Maximized Then Me.WindowState = FormWindowState.Normal btnMaximize.Image = Image.FromFile("C:\Resources\ResbtnMaximize.png") Else Me.WindowState = FormWindowState.Maximized End If End Sub

btnMaximize 是您当前的按钮标题。

为了使其完美,请将按钮属性设置为:

ButtonStyle = UltraFlat [+] Image= C:\Resources\ResbtnMaximize.png (Import new file) Image Location: MiddleCenter Text = (Fill Blank/No Text) [+] Behavior AllowFocus = False [+] Layout Anchor = Top, Right

然后调整按钮大小以适合图像并将按钮移动到右上角。此外,您还需要先创建透明图像(.png)或至少从inet下载。 


0
投票

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