{S0}
简介
这是一个非常简单的自定义控件实现一个进度条,让要通过书面文字。背景
多年来,微软已经做了一些进度条控件,但他们都已经在一些有用的功能或其他缺乏。这些功能之一是通过控制中心的文字书写能力。约旦在2008年12月,雅各布提出的一些做到这一点:int percent = (int)(((double)(progressBar1.Value - progressBar1.Minimum) /
(double)(progressBar1.Maximum - progressBar1.Minimum)) * 100);
using (Graphics gr = progressBar1.CreateGraphics())
{
gr.DrawString(percent.ToString() + "%",
SystemFonts.DefaultFont,
Brushes.Black,
new PointF(progressBar1.Width / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Width / 2.0F),
progressBar1.Height / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Height / 2.0F)));
}
这是一个伟大的解决方案,但它必须手工完成到每一个进度条。我想这可能是更容易,只需拖放一个自定义控件从窗体设计器预制,所以我建了一个包裹一个进度条,处理文本和/或自动绘图的百分比绘图。使用代码
使用此控件,只需拖放到你的VS工具箱CustomControls.dll,然后拖放到表单就像你一个正常的进度条的控制。
我还没有公开的所有进度栏的属性。我没有那些是:INT最低int最大int值INT步骤ProgressBarStyle风格彩色BarColor(映射到ProgressBar.ForeColor)
如果你需要访问别的,只是改变ProgressBar控件的成员,并重新编译的访问修饰符。
两个新的属性已被添加到处理的文字:BOOL ShowPercentage字符串CenterText
如果ShowPercentage是真的,那么完成百分比自动计算并显示出来,否则CenterText价值显示。一些轻微的修改原来的代码是需要做到这一点:{C}
这是一个非常简单的实现,有很多改进的余地,但对于大多数使用它是一个解决方案。历史一月十四日,2009年:战后初期