Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/170: Рейтинг темы: голосов - 170, средняя оценка - 4.92
 Аватар для Dr.Razor
1 / 1 / 0
Регистрация: 30.12.2010
Сообщений: 46

Поменять цвет ProgressBar

23.02.2011, 22:34. Показов 35533. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята,как можно поменять цвет в progressbar , чтобы в моей проге он был другого цвета?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2011, 22:34
Ответы с готовыми решениями:

Изменить цвет ProgressBar
как изменить цвет progressBar если положение индикатора равно трем?

Как изменить цвет ProgressBar?
Здравствуйте. Я делаю игровой лаунчер и хочу сделать свой цвет в ProgressBar место зеленого, подскажите пожалуйста как сменить цвет?

Поменять цвет ряда в гриде
Привет, Подскажите как Поменять цвет ряда в datagridview, т.е чтобы при current row менялся цвет. Либо Подскажите какое событие за это...

11
 Аватар для Etrimus
399 / 366 / 54
Регистрация: 23.05.2010
Сообщений: 716
24.02.2011, 07:04
Насколько я понимаю - никак, ведь у него нет такого свойства. Тут надо делать свой компонент, наследовать можно с того же обычного ПрогрессБара. Либо с нуля делать.
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
24.02.2011, 11:04
Лучший ответ Сообщение было отмечено как решение

Решение

Вот, когда нашел у себя, только не помню от куда
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
 
namespace System.Windows.Form
{
    [Description("Color Progress Bar")]
    [ToolboxBitmap(typeof(ProgressBar))]
    [Designer(typeof(ColorProgressBarDesigner))]
    public class ColorProgressBar : System.Windows.Forms.Control
    {   
    
        //
        // set default values
        //
        private int _Value = 0;
        private int _Minimum = 0;
        private int _Maximum = 100;
        private int _Step = 10;
        
        private FillStyles _FillStyle = FillStyles.Solid;
 
        private Color _BarColor = Color.FromArgb(255, 128, 128);
        private Color _BorderColor = Color.Black;
 
        public enum FillStyles
        {
            Solid,
            Dashed
        }
 
        public ColorProgressBar()
        {
            base.Size = new Size(150, 15);
            SetStyle(
                ControlStyles.AllPaintingInWmPaint |
                ControlStyles.ResizeRedraw |
                ControlStyles.DoubleBuffer,
                true
                );
        }
 
        [Description( "ColorProgressBar color")]
        [Category( "ColorProgressBar" )]
        public Color BarColor
        {
            get
            {
                return _BarColor;
            }
            set
            {
                _BarColor = value;
                this.Invalidate();
            }
        }
 
        [Description( "ColorProgressBar fill style")]
        [Category( "ColorProgressBar" )]
        public FillStyles FillStyle
        {
            get
            {
                return _FillStyle;
            }
            set
            {
                _FillStyle = value;
                this.Invalidate();
            }
        }
 
        [Description( "The current value for the ColorProgressBar, in the range specified by the Minimum and Maximum properties." )]
        [Category( "ColorProgressBar" )]
        // the rest of the Properties windows must be updated when this peroperty is changed.
        [RefreshProperties(RefreshProperties.All)]
        public int Value
        {
            get
            {
                return _Value;
            }
            set
            {
                if (value < _Minimum)
                {
                    throw new ArgumentException("'"+value+"' is not a valid value for 'Value'.\n"+
                        "'Value' must be between 'Minimum' and 'Maximum'.");
                }
 
                if (value > _Maximum)
                {
                    throw new ArgumentException("'"+value+"' is not a valid value for 'Value'.\n"+
                        "'Value' must be between 'Minimum' and 'Maximum'.");
                }
 
                _Value = value;         
                this.Invalidate();
            }
        }
        
        [Description("The lower bound of the range this ColorProgressbar is working with.")]
        [Category("ColorProgressBar")]
        [RefreshProperties(RefreshProperties.All)]
        public int Minimum
        {
            get
            {
                return _Minimum;
            }
            set
            {
                _Minimum = value;
 
                if (_Minimum > _Maximum)
                    _Maximum = _Minimum;
                if (_Minimum > _Value)
                    _Value = _Minimum;
 
                this.Invalidate();
            }
        }
 
        [Description("The uppper bound of the range this ColorProgressbar is working with.")]
        [Category("ColorProgressBar")]
        [RefreshProperties(RefreshProperties.All)]
        public int Maximum
        {
            get
            {
                return _Maximum;
            }
            set
            {
                _Maximum = value;
 
                if (_Maximum < _Value)
                    _Value = _Maximum;
                if (_Maximum < _Minimum)
                    _Minimum = _Maximum;
 
                this.Invalidate();
            }
        }
 
        [Description("The amount to jump the current value of the control by when the Step() method is called.")]
        [Category("ColorProgressBar")]      
        public int Step
        {
            get
            {
                return _Step;
            }
            set
            {
                _Step = value;
                this.Invalidate();
            }
        }
 
        [Description("The border color of ColorProgressBar")]
        [Category("ColorProgressBar")]      
        public Color BorderColor
        {
            get
            {
                return _BorderColor;
            }
            set
            {
                _BorderColor = value;
                this.Invalidate();
            }
        }
        
        //
        // Call the PerformStep() method to increase the value displayed by the amount set in the Step property
        //
        public void PerformStep()
        {
            if (_Value < _Maximum)
                _Value += _Step;
            else
                _Value = _Maximum;
 
            this.Invalidate();
        }
        
        //
        // Call the PerformStepBack() method to decrease the value displayed by the amount set in the Step property
        //
        public void PerformStepBack()
        {
            if (_Value > _Minimum)
                _Value -= _Step;
            else
                _Value = _Minimum;
 
            this.Invalidate();
        }
 
        //
        // Call the Increment() method to increase the value displayed by an integer you specify
        // 
        public void Increment(int value)
        {
            if (_Value < _Maximum)
                _Value += value;
            else
                _Value = _Maximum;
 
            this.Invalidate();
        }
        
        //
        // Call the Decrement() method to decrease the value displayed by an integer you specify
        // 
        public void Decrement(int value)
        {
            if (_Value > _Minimum)
                _Value -= value;
            else
                _Value = _Minimum;
 
            this.Invalidate();
        }
        
        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            //
            // Calculate matching colors
            //
            Color darkColor = ControlPaint.Dark(_BarColor);
            Color bgColor = ControlPaint.Dark(_BarColor);
 
            //
            // Fill background
            //
            SolidBrush bgBrush = new SolidBrush(bgColor);
            e.Graphics.FillRectangle(bgBrush, this.ClientRectangle);
            bgBrush.Dispose();
            
            // 
            // Check for value
            //
            if (_Maximum == _Minimum || _Value == 0)
            {
                // Draw border only and exit;
                drawBorder(e.Graphics);
                return;
            }
 
            //
            // The following is the width of the bar. This will vary with each value.
            //
            int fillWidth = (this.Width * _Value) / (_Maximum - _Minimum);
            
            //
            // GDI+ doesn't like rectangles 0px wide or high
            //
            if (fillWidth == 0)
            {
                // Draw border only and exti;
                drawBorder(e.Graphics);
                return;
            }
 
            //
            // Rectangles for upper and lower half of bar
            //
            Rectangle topRect = new Rectangle(0, 0, fillWidth, this.Height / 2);
            Rectangle buttomRect = new Rectangle(0, this.Height / 2, fillWidth, this.Height / 2);
 
            //
            // The gradient brush
            //
            LinearGradientBrush brush;
 
            //
            // Paint upper half
            //
            brush = new LinearGradientBrush(new Point(0, 0),
                new Point(0, this.Height / 2), darkColor, _BarColor);
            e.Graphics.FillRectangle(brush, topRect);
            brush.Dispose();
 
            //
            // Paint lower half
            // (this.Height/2 - 1 because there would be a dark line in the middle of the bar)
            //
            brush = new LinearGradientBrush(new Point(0, this.Height / 2 - 1),
                new Point(0, this.Height), _BarColor, darkColor);
            e.Graphics.FillRectangle(brush, buttomRect);
            brush.Dispose();
 
            //
            // Calculate separator's setting
            //
            int sepWidth = (int)(this.Height * .67);
            int sepCount = (int)(fillWidth / sepWidth);
            Color sepColor = ControlPaint.LightLight(_BarColor);
 
            //
            // Paint separators
            //
            switch (_FillStyle)
            {
                case FillStyles.Dashed:
                    // Draw each separator line
                    for (int i = 1; i <= sepCount; i++)
                    {
                        e.Graphics.DrawLine(new Pen(sepColor, 1),
                            sepWidth * i, 0, sepWidth * i, this.Height);
                    }
                    break;
 
                case FillStyles.Solid:
                    // Draw nothing
                    break;
 
                default:
                    break;
            }
 
            //
            // Draw border and exit
            //
            drawBorder(e.Graphics);
        }
 
        //
        // Draw border
        //
        protected void drawBorder(Graphics g)
        {
            Rectangle borderRect = new Rectangle(0, 0,
                ClientRectangle.Width - 1, ClientRectangle.Height - 1);
            g.DrawRectangle(new Pen(_BorderColor, 1), borderRect);
        }
    }
}
4
 Аватар для Dr.Razor
1 / 1 / 0
Регистрация: 30.12.2010
Сообщений: 46
25.02.2011, 20:10  [ТС]
C#
1
2
3
4
 ProgressBar p = new ProgressBar();
            p.Show();
            p.Visible = true;
            p.Location = new Point(14, 5);
Пишу так не появляется?Только через визуальное добавление что-ли??
Если так нельзя тогда как через унаследованный класс?
0
Кодило
 Аватар для r0fL
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
25.02.2011, 21:03
Dr.Razor,
C#
1
Contols.Add(p);
И размеры надо задать еще, наверно )
1
мну довольно <(-__-)l
 Аватар для gGrn-7DA
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
26.02.2011, 10:12
Цитата Сообщение от Konctantin Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
public void Decrement(int value)
 {
 if (_Value > _Minimum)
 _Value -= value;
 else
 _Value = _Minimum;
this.Invalidate();
 }
может лучше это проверять? _Value - value >= _Minimum
ну и в остальных местах проверку поправить, а то может стать причиной некоторых багов с отображением)
лучше даже так

C#
1
2
3
4
5
6
7
public void Decrement(int value)
{
    _Value -= value;
    if (_Value < _Minimum)
        _Value = _Minimum;
    this.Invalidate();
 }
0
46 / 46 / 3
Регистрация: 04.02.2011
Сообщений: 199
26.02.2011, 11:45
а где найти ColorProgressBarDesigner
0
 Аватар для maxkoshevoi
74 / 74 / 23
Регистрация: 07.11.2013
Сообщений: 539
11.01.2014, 00:11
http://www.codeproject.com/Art... rogressBar - вот есть =)
4
 Аватар для maxkoshevoi
74 / 74 / 23
Регистрация: 07.11.2013
Сообщений: 539
11.01.2014, 20:30
Урааа, я нашел Progressbar с кучей всевозможных настроек!!!
extendeddotnet.controls.rar
После добавления dll'ки в форме естественно прописываете:
C#
1
using ExtendedDotNET.Controls;
Кликните здесь для просмотра всего текста

Кликните здесь для просмотра всего текста
Настройку я провёл такую(строки из дизайнера):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
                                  // 
            // progressBar2
            // 
            this.progressBar2.BarOffset = 0;
            this.progressBar2.Caption = "ппрапр";
            this.progressBar2.CaptionColor = System.Drawing.Color.Black;
            this.progressBar2.CaptionMode = ExtendedDotNET.Controls.Progress.ProgressCaptionMode.Custom;
            this.progressBar2.CaptionShadowColor = System.Drawing.Color.White;
            this.progressBar2.ChangeByMouse = false;
            this.progressBar2.DashSpace = 0;
            this.progressBar2.DashWidth = 0;
            this.progressBar2.Edge = ExtendedDotNET.Controls.Progress.ProgressBarEdge.Rectangle;
            this.progressBar2.EdgeColor = System.Drawing.Color.FromArgb(((int)(((byte)(188)))), ((int)(((byte)(188)))), ((int)(((byte)(188)))));
            this.progressBar2.EdgeLightColor = System.Drawing.Color.Empty;
            this.progressBar2.EdgeWidth = 1;
            this.progressBar2.FloodPercentage = 0F;
            this.progressBar2.FloodStyle = ExtendedDotNET.Controls.Progress.ProgressFloodStyle.Standard;
            this.progressBar2.Font = new System.Drawing.Font("Segoe Print", 10.5F, System.Drawing.FontStyle.Bold);
            this.progressBar2.Invert = false;
            this.progressBar2.Location = new System.Drawing.Point(12, 12);
            this.progressBar2.MainColor = System.Drawing.Color.FromArgb(((int)(((byte)(6)))), ((int)(((byte)(176)))), ((int)(((byte)(37)))));
            this.progressBar2.Maximum = 100;
            this.progressBar2.Minimum = 0;
            this.progressBar2.Name = "progressBar2";
            this.progressBar2.Orientation = ExtendedDotNET.Controls.Progress.ProgressBarDirection.Horizontal;
            this.progressBar2.ProgressBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(230)))), ((int)(((byte)(230)))));
            this.progressBar2.ProgressBarStyle = ExtendedDotNET.Controls.Progress.ProgressStyle.Solid;
            this.progressBar2.SecondColor = System.Drawing.Color.White;
            this.progressBar2.Shadow = false;
            this.progressBar2.ShadowOffset = 1;
            this.progressBar2.Size = new System.Drawing.Size(415, 29);
            this.progressBar2.Step = 1;
            this.progressBar2.TabIndex = 4;
            this.progressBar2.TextAntialias = true;
            this.progressBar2.Value = 70;
4
 Аватар для maxkoshevoi
74 / 74 / 23
Регистрация: 07.11.2013
Сообщений: 539
23.11.2014, 16:45
О, точно, если ссылка выше перестанет действовать (а она может), то вот сайт, где я его нашел: http://www.codeproject.com/Art... T-Controls
1
 Аватар для Alexander-7
8 / 8 / 0
Регистрация: 08.03.2020
Сообщений: 64
Записей в блоге: 5
12.05.2023, 22:02
Слава тебе, Господи! Урааа! Дай я тебя расцелюлю, красавчик! Несколько недель решаю этот вопрос для своей дипломной работы, и это находил, но не понимал, как применить. Хотел уже на Tkinter в Python перейти - там это можно. В Delphi тоже много лет назад искал, как поменять цвет, но уже хрен с ним, с Delphi. Итак, расписываю по-русски:

На сайте https://www.codeproject.com/Ar... T-Controls, который оставлен выше, прокручиваем вниз до слов
How To Use
Right click on the Toolbox and choose Add/Remove Items..., there you browse for the ExtendedDotNET.Controls.dll and press OK. All the controls will be added in the ToolBox under "My User Controls".

Это значит:
Выберите «Toolbox» (Панель элементов) из меню «View».
Правой кнопкой мыши щелкните открытую Toolbox.
Выберите пункт «Choose Items…» (Выбрать элементы) из выпадающего меню.
В появившемся окне выберите вкладку «.NET Framework Components».
Выберите необходимый элемент управления (файл extendeddotnet.controls.dll) из списка и нажмите «OK».

Позвольте продублирую волшебный файл!
Вложения
Тип файла: rar extendeddotnet.controls.rar (9.6 Кб, 63 просмотров)
1
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,698
12.05.2023, 23:24
И мне тоже нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2023, 23:24
Помогаю со студенческими работами здесь

Как поменять цвет ListBox?
можете изменить цвет? как изменить цвет? пожалуйста помоги) жду вами ответ:friends:

Как поменять цвет текста?
Есть форма. Там 3 HscrollBar это red, green, blue. При перемещении ползунков цвет label7 должен сразу менться. А он у меня меняется...

Поменять цвет ячейки Excel
Здравствуйте! :) 1) Как поменять цвет ячейки Excel средствами C#? 2) Как объединить ячейки Excel средствами C#?

Как поменять цвет DataGridViewButtonColumn
Имеется кнопка в dataGridView DataGridViewButtonColumn deleteButton1 = new DataGridViewButtonColumn(); ...

Как поменять цвет панели?
Подскажите, пожалуйста, как мне поменять цвет вот этой панели??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru