【问题标题】:Can a button have a border when disabled?禁用时按钮可以有边框吗?
【发布时间】:2015-02-12 16:10:55
【问题描述】:

鼠标隐藏在屏幕上,因此用户知道滚动到哪里的唯一方法是,当鼠标进入按钮时,按钮有边框。 当您单击一个按钮时,该按钮会被禁用,但边框会消失

有没有办法让按钮即使在禁用时也具有边框颜色?

【问题讨论】:

  • 我很难理解您的情况。除了澄清您的问题,请添加适当的标签:WinForms、WPF 等。
  • 当一个按钮被禁用时,它有一个“灰色”的外观,是否可以为该按钮添加一个边框?
  • 但是您的问题还涉及在单击它时滚动和禁用它等。也许屏幕截图会有所帮助,因为我无法弄清楚为什么禁用的按钮需要一个活动边框。
  • 我不同意近距离投票(特别是“不清楚你在问什么”)。问题非常清楚......最终结果和可用性可能很奇怪,但问题:is there a way to make a button have a border color even when it is disabled? 非常清楚。

标签: vb.net winforms button


【解决方案1】:

我感觉你正在尝试解决一个你应该解决的不同问题:D 为什么鼠标被隐藏了?

但是,要回答这个问题:您可以为每个按钮存储在代码隐藏布尔值中,并在单击处理程序中检查它们的真/假(如果为假,则返回而不是执行正常的单击操作)。您还可以从代码隐藏中将文本颜色更改为灰色或模拟禁用按钮的东西。

【讨论】:

  • 鼠标是故意隐藏的,我的问题是:禁用按钮时是否可以有按钮边框?
  • 我不知道 - 禁用按钮会对其应用特定的样式。但是您可以使用这些布尔值禁用它的功能:)
【解决方案2】:

如果您不想自定义绘制按钮(这可能是一个选项),您可以将按钮放在Panel 内,将按钮上的Dock 设置为Fill,然后面板的Padding 设置为您想要的边框粗细。

那么你只需要更改面板的BackColor 来设置假边框(并使用Panel 的位置和大小设置来实际设置按钮)。

如果您要多次使用它,您可以轻松地让用户控制它

示例:

这是截图的Designer.cs源代码(更新:我看到这个问题被标记为vb.net,但Designer.cs文件是使用设计器创建的......你不要'不需要'这个代码,我把它作为截图是如何创建的参考)

作为旁注,我同意其余的:这“通常”是 UX 灾难(在禁用按钮上有“活动边框”),但是,我不知道您想要的最终结果,也不知道您的应用程序/要求,所以我只是告诉一种可以轻松完成的方法。我并不是绝对暗示它应该完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 2014-08-28
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多