65.9K
CodeProject 正在变化。 阅读更多。
Home

自定义进度条控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.76/5 (38投票s)

2008 年 5 月 30 日

CPOL

3分钟阅读

viewsIcon

236614

downloadIcon

16158

易于使用的进度条控件, 具有许多属性

ProgBarPlus

引言

为什么需要另一个进度条? 标准的 ProgressBar 功能太有限,而且我找不到一个能满足我需求的自定义控件。这是一个 UserControl,具有许多属性和多功能性。它显示从最小值到最大值的进度,或者无限的来回进度。 它使用起来很简单,只需将其拖放到窗体上,调整设计时属性,然后像使用普通的 ProgressBar 一样使用它即可。

背景

这是我的第一个 UserControl,实现了某些设计时属性,包括使用 ExpandableObjectConverter TypeConverterControlDesigner 的可扩展属性。我已使用此处解释的技术在 2.0 版中扩展了设计时编辑:UITypeEditorsDemo[^](由于新的编辑器,属性进行了修改,因此与以前的版本有所不同)。该演示还说明了如何使用组件或运行时 BackgroundWorker 来运行不同的线程。

控件属性

以下是主要属性列表

  • BarStyleFill

    进度条的填充样式。纯色、图案、多种颜色混合和图像

  • BarColorBlend

    用于渐变填充的颜色和位置

  • BarColorSolid, BarColorSolidB

    用于纯色和阴影填充的颜色

  • FocalPoints

    颜色混合的可移动中心点和焦点刻度

  • 形状

    进度条的形状。矩形、椭圆形、三角形和文本

  • BorderColor, BorderWidth

    更改边框属性

  • Orientation

    水平或垂直进度

  • FillDirection

    水平从右到左或从左到右,垂直从下到上或从上到下

  • Corners, CornersApply

    调整圆角半径并应用于边框、进度条或两者

  • ForeColor, TextAlignment, TextAlignmentVert, TextWrap, TextPlacement, Shadow

    调整颜色、对齐方式、换行方式,以及文本是显示在控件上还是随进度条移动

  • TextShow, TextFormat

    要显示的文本的模板

    • Value = 仅 Value
    • ValueOfMax = 使用 Max 格式化 Value,例如“22 of 100”
    • Percent = 带有百分号的 ValuePercent
    • FormatString = 在此处输入任何文本
      • 输入 {0} 以显示 Value
      • 输入 {1} 以显示 ValuePercent
      • 输入 {2} 以显示 Max
        例如,'{0} 行数据,共处理了 {2} 行'
  • BarType

    显示从 MinMax 的进度,或来回无限进度

  • BarLength, BarLengthValue

    进度条随 Value 扩展,或进度条的固定长度随值移动

  • Min, Max

    ProgressBar 的最小值和最大值

  • ProgressBar 的当前值

  • ShowDesignBorder

    仅在设计模式下显示虚线(如果无边框)

控制方法

  • ValuePercent()

    获取该值所代表的百分比

  • ResetBar(opt value)

    将 Value 设置为 MinValueMaxValue

  • Increment(opt value)

    将值增加一或给定的值

  • Decrement(opt value)

    将值减少一或给定的值

Using the Code

获得进度条看起来像您想要的样子后,添加一些代码。您可以直接更改 Value 属性或使用 Increment/Decrement 方法

 With MyProgBarText
    .Max = 200
    .ResetBar()
    For i As Int32 = 0 To 200
        .Increment()
        // Add Your Code Here
    Next
 End With

对于无限进度条,更改 BarType 并更改 CylonRun 布尔值

  MyProgBarCylon.BarType = MyProgBar.eBarType.CylonBar
  MyProgBar.CylonRun = True

关注点

SmartTag 使自定义进度条变得容易。所有重要的属性都已组织起来以简化流程。

ProgBarPlus

历史

  • 1.0 版 2008 年 2 月
  • 2.0 版 2008 年 11 月
  • 3.0 版 2011 年 6 月
    • 许多设计和布局修复
© . All rights reserved.