【问题标题】:Progress button for Windows FormsWindows 窗体的进度按钮
【发布时间】:2010-09-16 19:34:30
【问题描述】:

.NET 新手在这里...我想在 Windows 窗体中制作一个按钮,显示进度或“冷却”效果。也就是说,当按钮被按下时,它会被禁用。随着某些事件或计时器的进行,该按钮以图形方式显示进度。进度完成后,图形完成并且按钮变为启用状态。在许多游戏中都可以看到类似的效果。

我曾考虑使用内置 Button 类和 GDI+ DrawPath 函数的组合,但复杂性扩展性很差,而且我觉得必须有更简单的方法。

有什么想法吗?谢谢。

【问题讨论】:

  • 我不会走 gdi 路线...你考虑过使用 wpf 吗?

标签: .net button progress


【解决方案1】:

最简单的方法是创建进度条控件的实例,然后您不需要执行任何自定义编码/自定义绘制。如果您确实需要在按钮控件中显示所有内容,那么您有两个选择。您可以不断更改按钮的 Image 属性或全力以赴并执行按钮的自定义绘制。自定义绘画非常简单,您只需要绘制文本以及您想要的任何图像。

【讨论】:

    【解决方案2】:

    另一种简单的方法可能是让两个控件、一个按钮和一个进度条占据表单上的相同空间。当用户按下按钮时,隐藏按钮并显示进度条。根据需要更新进度条,直到完成任何处理。然后,隐藏进度条并再次显示按钮。

    【讨论】:

      【解决方案3】:

      如果您真的需要将它放在按钮上,我会使用自定义绘制事件。

      类似于:

      button += new buttonPaintEvent(buttonPaintEventHandlerMethod);
      

      【讨论】:

      • @Underflow:想用这个答案详细说明你的解决方案吗?
      猜你喜欢
      • 2013-06-05
      • 2012-08-08
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多