自定义进度条控件






4.76/5 (38投票s)
易于使用的进度条控件,

引言
为什么需要另一个进度条? 标准的 ProgressBar
功能太有限,而且我找不到一个能满足我需求的自定义控件。这是一个 UserControl
,具有许多属性和多功能性。它显示从最小值到最大值的进度,或者无限的来回进度。 它使用起来很简单,只需将其拖放到窗体上,调整设计时属性,然后像使用普通的 ProgressBar
一样使用它即可。
背景
这是我的第一个 UserControl
,实现了某些设计时属性,包括使用 ExpandableObjectConverter TypeConverter
和 ControlDesigner
的可扩展属性。我已使用此处解释的技术在 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
显示从
Min
到Max
的进度,或来回无限进度BarLength, BarLengthValue
进度条随
Value
扩展,或进度条的固定长度随值移动Min, Max
ProgressBar
的最小值和最大值值
ProgressBar
的当前值ShowDesignBorder
仅在设计模式下显示虚线(如果无边框)
控制方法
ValuePercent()
获取该值所代表的百分比
ResetBar(opt value)
将 Value 设置为
MinValue
或MaxValue
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 使自定义进度条变得容易。所有重要的属性都已组织起来以简化流程。

历史
- 1.0 版 2008 年 2 月
- 2.0 版 2008 年 11 月
- 3.0 版 2011 年 6 月
- 许多设计和布局修复