VS2005平台下的ProgressBar控件有三种Style:
Blocks 通过在 ProgressBar 中增加分段块的数量来指示进度。
Continuous 通过在 ProgressBar 中增加平滑连续的栏的大小来指示进度。
Marquee 通过以字幕方式在 ProgressBar 中连续滚动一个块来指示进度。
1.设置Marquee样式
progressBar1.MarqueeAnimationSpeed = 50;//设置字幕动画的速度(单位是毫秒)
progressBar1.Style = ProgressBarStyle.Marquee;//设置进度条样式为marquee
开始滚动时设置为Marquee样式,停止滚动时设置为Blocks样式即可
如果系统安装了桌面主题的话,可能会干扰Marquee样式的显示,卸掉后就不影响了
通过下面的演示程序看一下效果吧
view plaincopy to clipboardprint?
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
//在窗口中拖入ProgressBar控件,Timer控件,Button控件
bool timeout = false;//指示线程挂起时间是否到达
private void timer1_Tick(object sender, EventArgs e)
{
if (timeout)
{
timer1.Stop();//计时器停止计时
timeout = false;
progressBar1.Style = ProgressBarStyle.Blocks;//设置进度条样式为blocks
}
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();//计时器开始计时
timeout = false;
progressBar1.MarqueeAnimationSpeed = 50;//设置字幕动画的速度(单位是毫秒)
progressBar1.Style = ProgressBarStyle.Marquee;//设置进度条样式为marquee
//
System.Threading.Thread myThread;//创建另一个线程(用于计时吧)
myThread = new System.Threading.Thread(new System.Threading.ThreadStart(myStartingMethod));
myThread.Start();//启动线程
}
private void myStartingMethod()
{
Thread.Sleep(6000);//线程挂起时间(单位是毫秒)
timeout = true;//修改
}
ToolStripProgressBar控件是ProgressBar控件的升级,也有这方面的功能
在实际使用时,我设置了progressbar的Marquee,但是没有用。。
查了资料才发现 没有启用 视觉样式,加上只一句 Application.EnableVisualStyles(); 就可以了
出处:http://blog.sina.com.cn/s/blog_4c6e822d0102e2bz.html
=============================================================================
其实最简单的就是用两个Label模拟。
外侧的Label设置为凹陷效果。
里面摆一个Label,默认width=0
更新内侧的Label的宽度,让它等于最大宽度的百分比,即可实现进度条的效果。
还可以加上文字、修改颜色。
----------------------------------------
顶楼上。
http://www.codeproject.com/Articles/203302/Progress-Bar-Google-Chrome
自定义的ProgressBar做个参考吧
还有这个是vb.net写的
http://www.codeproject.com/Articles/26518/Custom-ProgressBar-Control
其他一些东西,有需要可以自己去google,学会自己解决问题。