【问题标题】:I know how to do a Maximize Button, but how do I do a Restore Button in VB?我知道如何做一个最大化按钮,但是如何在 VB 中做一个恢复按钮?
【发布时间】:2014-08-20 08:01:44
【问题描述】:

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

【问题讨论】:

  • 哪个版本的VB? VB 6? VB.NET? VB脚本?办公室 VBA?
  • 我使用的是 Visual Studio 2013,是 VB 6 吗?我不确定,因为我是新手。
  • 不,VB 6 是在 1998 年推出的。Visual Studio 2013 附带 VB.NET,版本 13。不过,VB 有很多版本,因此将这些细节放入其中很重要你的问题。
  • 嗯,好的,谢谢。

标签: vb.net windows winforms maximize-window


【解决方案1】:

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

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

     

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

      

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

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

Me.MaximizeBox = True

如果你真的想要第四个按钮,你必须自己负责绘制窗口的标题栏。这是一项真正的大工作,可能不是你想做的工作,因为你在评论中指出你是 VB.NET 的新手。而且大部分工作都与 VB.NET 无关,而更多地与 Win32 编程有关。除非您已经是专业的 Win32 程序员,并且正在迁移到 VB.NET 作为一种新语言,否则您将希望满足于默认行为。对于尝试从 Windows Vista 开始自定义标题栏的开发人员来说,情况变得更糟——Aero Glass 效果不适合自定义。我不知道 Windows 8 的表现如何,但我怀疑它变得更容易了。如果你真的对此感兴趣,你可以在网上找到大量信息,甚至是 Stack Overflow 上的问题(例如,hereherehere)。

老实说,即使您是专业的 Win32 程序员,我想说您应该满足于默认行为无论如何。即使您不认为它是理想的,它也是您的用户所习惯的。他们系统上的所有其他应用程序都以这种方式运行。

【讨论】:

  • 好吧好吧。谢谢你的回答。
【解决方案2】:

好的,我不是专家,但试试这个(VB NET 2013)。创建一个按钮并插入下面的代码:

 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 下载。

【讨论】:

  • 把奇怪的部分丢掉就OK了。
  • 好的@G.Samaras。也不要忘记制作 Winform Borderless : No Tittle Bar (Text), No Icon, No ControlBox.
猜你喜欢
  • 2016-01-29
  • 2021-08-24
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多