返回首页

{S0}简介
为什么另一个进度条?标准的ProgressBar是太有限,我无法找到一个自定义控件书面所有,我想。这是一个有很多属性和多功能的UserControl。它显示了最低的最大值进度或无限来回进展。它使用简单,只需拖放的形式,调整设计时的属性,并使用它像正常的ProgressBar。背景
这是我第一个UserControl的实施一些设计上的时间属性,包括扩展ExpandableObjectConverter的TypeConverter和ControlDesigner属性。我有扩大使用这里介绍的技术在版本2.0的设计时编辑:](由于新的编辑器,改革发生的性质,所以有一些分歧从以前的版本)。演示也说明了如何使用组件或运行不同的线程运行时的BackgroundWorker。控制属性
这里是一个主要属性列表:BarStyleFill
栏的填充样式。固体,模式,多种颜色混合,和图像BarColorBlend
的颜色和位置用于渐变填充BarColorSolid,BarColorSolidB
使用的颜色为固体和填充填充FocalPoints
动产中心点和焦点秤的颜色混合形状
栏的形状。矩形,椭圆,三角,和文字的BorderColor,边框宽度
更改的边框属性方向
水平或垂直的进展FillDirection
水平的从右到左或左到右"和"垂直底部到顶部或顶部到底部角落,CornersApply
调整圆角半径,适用于边境,酒吧,或两者兼而有之前景色,TextAlignment的属性,TextAlignmentVert,TextWrap,TextPlacement,阴影
调整的颜色,对齐方式,包装,以及如果出现与酒吧在控制或移动文本TextShow,的TextFormat
模板,以显示文本:没有值=只是值ValueOfMax =格式与最大即100 '22的价值"百分比=只是ValuePercent百分号的FormatString =这里输入任何文字:输入{0}你想要的值显示。输入{1}你想ValuePercent显示。输入{2}您想要的最大显示。
即"{0}行数据{2}处理"BarType
显示最小到最大的进步或来回无限的进展BarLength,BarLengthValue
酒吧继续扩大与数值或一个固定长度的酒吧的动作值MIN,MAX
ProgressBar的最小值和最大值
ProgressBar的当前值ShowDesignBorder
显示在设计模式中的虚线,如果没有边境防治方法ValuePercent()
值表示的百分比ResetBar(选择价值)
设置minvalue或者maxvalue的价值增量(选择价值)
一个给定的值增加值递减(选择价值)
由一个或给定的值减少的价值使用代码
一旦你获得的进度栏寻找您想要的方式,添加一些代码。您可以直接更改Value属性,或使用了递增/递减的方法:

 With MyProgBarText

    .Max = 200

    .ResetBar()

    For i As Int32 = 0 To 200

        .Increment()

        // Add Your Code Here

    Next

 End With

的无限的进度条,改变BarType,并改变CylonRun布尔值:{C}兴趣点
智能标记可以轻松地自定义的进度条。所有重要的属性是有组织的,以简化的过程。{S1}历史1.0版2008年2月2.0版2008年11月3.0版2011年6月许多设计和布局修复

回答

评论会员:treaverh 时间:2011/12/18
如何编译它
评论会员:?SSDiver2112 时间:2011/12/18
只是选择"生成解决方案
评论会员:。CIDev 时间:2011/12/18
我喜欢的进度控制,也许是因为这么多的程序员不懒得将它们添加。你有一个明确的书面文章,和一个非常令人印象深刻的灵活的进度控制。你从我这里得到一个5。
仅仅因为代码的工作,但这并不意味着它是良好的代码
评论会员:游客 时间:2011/12/18
。mikehilton:?如果不是我看到一个DLL文件中提取的文件感谢。看起来像一个伟大的控制
。mikehilton
评论会员:游客 时间:2011/12/18
想通了。感谢。这是一个很大的控制
!Onur居泽尔
评论会员:游客 时间:2011/12/18
我无法找到它,我既不恨我编译的项目和生产的项目,预计实际的DLL。此外,重建项目(当第一次打开测试形式vbproj)之前,我得到了105警告declerations和实际形式是不可见设计师使用VS2005。当你只是单独设置Value属性,什么也没有发生,似乎"定时器"在示例项目中使用。修改,2011年4月27日(星期三)上午06:15
SSDiver2112
评论会员:游客 时间:2011/12/18
我对不起您有麻烦,但每一个项目都必须创建DLL的编译。正如代码项目文章提交指南:"示例项目。建议您还包括一个示例项目创建一个示例项目的zip文件时,请不要包括调试或发布目录,他们简单地膨胀ZIP文件的大小,做不包括*.CLW,*.NCB,*.opt和其他自动重新创建这样的文件。"正因为如此,该项目将没有足够的信息,以查看表格及这样,直到它被重建和所有支持文件的创建。SSDiver2112
dedawson4024
评论会员:游客 时间:2011/12/18
愚蠢的质询时间。该控件的外观喜欢我一直在寻找答案;一个简单的方法在Word2003中的VBA的进度条但是,我还是有点困惑。在zip,我看到没有告诉我如何得到控制安装的自述。所以我会永远感激,如果有人可以开导我。dedawson
SSDiver2112
评论会员:游客 时间:2011/12/18
我真的不知道如何或即使可以。我建议做一个"添加vb.net的UserControl的VBA"或类似的搜索。为了简化在VBA中,我已经使用了两个标签。一个标签,有一个透明的背景色,边框和文本。第二个标签后面的第一个层次的。调整这一项的宽度模拟进度条。lblBar.Width=currentValue*((lblBarBack.Width-2)/maximumValue)另一个我已经做的事情是更换一个Image控件的标签lblBar,使用位图作为酒吧。SSDiver2112
dedawson4024
评论会员:游客 时间:2011/12/18
我很害怕。我猜,在。NET的世界中,这种控制被编译,然后就可以雇一个外接程序。是否有可能,我可以尝试加载这样,你也许能够提供这样一个模块(。COM,。DLL等)吗?我只有在VBA就是驻留在办公室做了没有手段,净编译。在此先感谢,大卫dedawson"
Donsw
评论会员:游客 时间:2011/12/18
很好的控制,很不错的功能。深思熟虑
。taziscool
评论会员:游客 时间:2011/12/18
我很使用VBExpress2008的,我一直在等所有超过VB6的改善,我是用了这么久印象深刻..直到我开始使用标准的进度条控件{S2}我有一个应用程序使用filesearch栏显示搜索进度,以准确反映,我遇到了麻烦。尝试过这么多的东西,但它不会完成它的显示为100%,只是一般不准确的,无论多少我尝试刷新或更新或的DoEvents。只是一些很古怪的事情,他们pbar显示它的价值背后的滞后处理像filesearch这样的激烈过程时,所以我加了你的进度我的工具箱,设置它的外观,它停靠在地方的标准之一,并把它相同的百分比值,因为我已经给微软的POS酒吧......工作完美的第一次!准确的,很好看,完全按预期完成栏显示。希望我会发现这首,而不是插科打诨这么多。感谢帮你们的辛勤工作,这是一个很好的的控制,很容易使用。{S3}
会员4488055
评论会员:游客 时间:2011/12/18
这是一个很长一段时间我一直在寻找的控制!出色的工作,在这一个
!会员3738860
评论会员:游客 时间:2011/12/18
可能有人这个项目转换到C#请?还是让我知道一个酒吧本身的%标签与一个进度条。皮特
SSDiver2112
评论会员:游客 时间:2011/12/18
如果你只是想在你的项目的控制,只需将DLL添加到您的工具箱,并在C#项目中使用它。如果你需要的代码,然后有人将它转换。斯科特
会员3738860
评论会员:游客 时间:2011/12/18
,我知道我可以将DLL添加到我的项目,但我真的很想在C#代码。我只需要一些thie控制的属性。皮特
SSDiver2112
评论会员:游客 时间:2011/12/18
尝试这些网站之一imgsrc=http://www.orcode.com/upimg/2011_12_18_07_57_57_2.gifimgsrc=http://www.orcode.com/upimg/2011_12_18_07_57_58_3.gifimgsrc=http://www.orcode.com/upimg/2011_12_18_07_56_14_4.jpg
会员3738860
评论会员:游客 时间:2011/12/18
。感谢那些网站-我会检查出来后皮特
supercat9
评论会员:游客 时间:2011/12/18
一个有用的功能,对于某些类型的控制,特别是进度条,是从任何线程不阻塞线程做更新更新的能力。使用本身的BeginInvoke是不太好足够,因为它会更新事件成千上万排队控制之前被刷新的可能。使用CompareExchange,但是,它可以毫不费力地添加线程安全。是这样的:codepreSubDoUpdatespanclass="code-keyword"if/spanNeedsUpdate<>spanclass="code-digit"0/spanThenneedsUpdate=spanclass="code-digit"0/spanspanclass="code-string"'/spanspanclass="code-string"Doatstartofupdateroutine...EndIfEndSub SubReqUpdateIfNeedsUpdate=0ThenIfThreading.Interlocked.Exchange(NeedsUpdate,1)=0ThenIfInvokeRequiredThenBeginInvoke(DoUpdateDelegate)ElseDoUpdateEndIfEndIfEndIfEndSub/span/pre/code您还需要确保你存储你的价值观,在这样一种方式,不会导致问题发生,而他们写的刷新,但上面概述的方法,将工作得很好。可以加入一个计时器来限制最大的更新速度略有改善,但关键因素是,一个线程可以更新进度条,每当它想,而无需等待,即使用户界面线程被阻塞。|carrotwater
我第一次发现{A5}],但是这一次,我不得不说,提供了更多的(没有其他花花公子的罪行)。尼斯的工作
评论会员:。 时间:2011/12/18