ProgressBar——Marquee

来源:互联网 发布:数据的稀疏性 编辑:程序博客网 时间:2024/05/18 10:11

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();  就可以了

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yhtppp/archive/2010/07/11/5666803.aspx

原创粉丝点击