自定义进度条控件






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 月
- 许多设计和布局修复


