C#中怎样改变进度条(progressbar)的颜色?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中怎样改变进度条(progressbar)的颜色?相关的知识,希望对你有一定的参考价值。

如题,我想改一下progressbar控件的颜色,该怎么改?先谢谢了!
progressbar没有颜色的这个属性属性

改变系统自带进度条的方法就是重绘了。

具体方法如下:

1. 自定义控件继承自ProgressBar,如下:

    public class CustomProgressBar : ProgressBar
    
        public CustomProgressBar()
        
            base.SetStyle(ControlStyles.UserPaint, true);
            //...
        
        
        //重写OnPaint方法
        protected override void OnPaint(PaintEventArgs e)
        
            SolidBrush brush = null;
            Pen pen;
            Rectangle bounds = new Rectangle(0, 0, base.Width, base.Height);
            //...
            e.Graphics.FillRectangle(new SolidBrush(this.BackColor), 1, 1, bounds.Width - 2, bounds.Height - 2);
            bounds.Height -= 4;
            bounds.Width = ((int)(bounds.Width * (((double)base.Value) / ((double)base.Maximum)))) - 4;
            brush = new SolidBrush(this.ForeColor);
            e.Graphics.FillRectangle(brush, 2, 2, bounds.Width, bounds.Height);
        
    

2. 了解下ControlStyles枚举

3. 重绘控件

重写OnPaint方法,按具体需要绘制控件外观。

参考技术A 系统控件封装要实现与系统完全同式能自绘制或使用第三UI控件 参考技术B MSDN上说windowsXP以上版本不能改:
“注意:

Windows
XP
Home
Edition、Windows
XP
Professional、Windows
Server
2003
以及更高版本上启用视觉样式时,对
ProgressBar

ForeColor

BackColor
更改将不起作用。”
至于怎么编程实现我也不会……似乎需要自己写控件。
参考技术C 这是系统控件的封装,要实现与系统完全不同的样式,只能自己绘制,或使用第三方UI控件。本回答被提问者采纳 参考技术D 明明有啊,
BackColor背景色
ForeColor前景色

c# ProgressBar控件

我在c#的窗体中链接网页,用ProgressBar控件显示进度,
当链接到时,ProgressBar控件填满。
要怎样写?
我是个新手,请附上详细代码?

你拖放一个webbrower后,
然后再他的ProgressChanged事件中写如下代码哈;

private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)

progressBar1.Value = (int)(e.CurrentProgress / e.MaximumProgress) * 100);//e.CurrentProgress表示已经下载的字节大小,e.MaximumProgress表示要下载的总自己数哈!!这样取整的结果*100就是赋值给progressbar的value的值了


如有不懂的话,给我联系哈!
参考技术A private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)

this.progressBar1.Value = (int)(e.CurrentProgress / e.MaximumProgress * 100);
参考技术B 模拟一个进度

ProgressBar1.Minimum = 0;
ProgressBar1.Maximum = 0;
ProgressBar1.Maximum = 100;
for (int i = 0; i < 100; i++)

this.ProgressBar1.Value++;
参考技术C 当你判断网页是完全打开时,用webresponse方法,把progressBar1.Value ==progressBar1.MaxValue;

以上是关于C#中怎样改变进度条(progressbar)的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

c#中 progressbar 进度条控件怎么开始???

关于Android怎么改变ProgressBar进度条颜色

关于Android怎么改变ProgressBar进度条颜色

C# 中的 progressBar1 如何使用这个进度条控件.?

C#进度条怎么用 / C#progressBar的用法

winform 进度条