{A}
{S0}最新
原有的控制并没有写入到包括线程安全的遵守。这已得到纠正,是在新的下载(S)。
感谢大家所有的客气话!简介
作为应用程序开发,它是并不少见到一个特定的用户界面要求运行,你可以不履行使用购买控制。很多时候,你会发现第三方控制接近但不太让你向你的目标。你的选择是改变这个特殊要求的用户界面设计,或写自己的控制。背景
这是这种控制的起源。我的应用程序执行一个相当长的数据库更新,涉及的父对象的大型集团和每一个父对象,以儿童为对象的大量需要,以及更新。整个过程将需要30秒到几分钟,我不希望我的用户在盯着那段时间不知道,如果他们想锁定一个沙漏。
我开始用一个标准进度条,这是很好,直到我注意到几个"滴答"如此漫长,再次回到我所关注的用户和不想迫使他们坐下盯着一个屏幕,已经死了一个超过几秒钟。
为了解决这个问题,我刚才已经堆积在彼此顶部两个进度条,并更新他们的个人??,但作为一个程序员,我可以寻找到一个单一的没有正当理由不过工程师这个任务,自成体系的控制!在您的项目中使用的控制
虽然在Visual Studio中,右键单击工具箱选项卡中,您要添加控制。点击"选择项... ..."并导航到你保存SplitProgressBar.dll。选择DLL和点击'OK'。
这将控件添加到您的工具箱,你现在准备拖到您使用的形式。属性BarBackColor是背后的ProgressBar细胞面板的背景颜色。周围的ProgressBar的行中使用的是彩色的BorderColor。TextBackColor标签后面的面板的背景颜色。TextColor是标签的前景色。BarBottomColor和BarTopColor的颜色使用ProgressBar的细胞。BarBottom.BarMax是可以达到的上限。BarValue。BarBottom.BarMin是下限。BarValue可以达到。BarBottom.BarStep告诉进度条如何递增。BarValue每次。PerformBottomStep推。BarBottom.BarValue是我们的ProgressBar的实际价值。BarTop是相同BarBottom。如果为true GradientBars,控制将试图填补在使用渐变图案的细胞。SyncTopAndBottom如果情况属实,控制将忽略BarBottom值,并绘制之一,大型固体细胞,使用的BarTop值。PanelText.TextLabel是"标签"面板中显示的文本。PanelText.TextPanelAlignment左,居中或右对齐标签水平。PanelText.TextPanelAutosize如果情况属实,标签面板的宽度将被计算基础上的文字。PanelText.TextPanelWidth使用此调整标签的大小。
*仅适用于TextPanelAutosize = FALSE *.用法示例Private Sub ProcessSomething()
' Setup our progress bar to use ONE large cell and to paint the cells as
gradients
With ProgBar
.SyncTopAndBottom = True
.GradientBars = True
.BarTop.BarMax = ElementsToProcess.Count
.BarTop.BarStep = 50
.BarTop.BarValue = 0
End With
Dim CurrentElement As Integer
For Each Element As SomeElement In ElementsToProcess
'
' Your code here
'
' Increment our counter
CurrentElement += 1
' If we're ready to update the progress bar - go do it.
If CurrentElement Mod ProgBar.BarTop.BarStep = 0 Then
ProgBar.PerformTopStep()
End If
Next
End Sub
在同一时间使用的顶部和底部的酒吧很简单:刚刚成立SyncTopAndBottom = FALSE和设置您的BarBottom属性相同的方式来设置BarTop属性。。。
*注*:如果您的控制细胞,小于6个像素的高度,将使用纯色填补无论在细胞GradientBars价值。。酷ComponentModel属性
你有没有过一个属性在设计时改变他人财产的价值?要得到控制刷新的值的属性窗口,使用的RefreshProperties力这样的更新:{C}
想要quot; hidequot,未使用的属性?并非所有的人都quot; hidablequot;但对于那些,试试这个:
兴趣点
<Browsable(False)> _
Public Overrides Property Autosize() As Boolean
Get
Return MyBase.AutoSize
End Get
Set(ByVal value As Boolean)
MyBase.AutoSize = value
End Set
End Property
这是我写的第一个控制使用扩展的属性(如大小,填充,位置等),虽然很漂亮,搞清楚如何设置这样的属性,给我造成了一些心痛不是最这是几乎没有关于如何创建的文档,配置或使用扩展的属性(我是能够找到的!)
一个怪事屡有发生,我还没有找出原因:当控制置于窗体,请单击"关于控制和滚动属性窗口BarBottom,并期待在所显示的值:"0 0,0,0 quot;这是默认的启动设置。?
如果修改转换和重建SplitProgressBar类,而不是看到子属性值,你会看到,"这样的类的名称; SplitProgressBar.BarClassquot;
在这一点上,你必须从主要项目的参考清单中删除SplitProgressBar??并重新添加。重新启动Visual Studio将解决这个问题很好,但因为我从来没有打算改变填写在父属性的子属性作为一个逗号分隔的文本单行的开发,实际上,我确定当发生这种情况。
事实上,这是一个改进,我想控制:我想没有文字显示parent属性时倒塌。如果有谁知道如何把这一关,请让我知道!"