-1

I am a newbie in C sharp. I created a vertical scrollbar (VScrollBar). I wanted to change the color of the scrollbar's Backcolor. As it is inherited from Control, when i changed the color it does not take any effect. In the InitializeComponents()->

this.vScrollBar1 = new System.Windows.Forms.VScrollBar();
this.vScrollBar1.Location = new System.Drawing.Point(472, -41);
this.vScrollBar1.Name = "vScrollBar1";
this.vScrollBar1.Size = new System.Drawing.Size(17, 80);
this.vScrollBar1.TabIndex = 15;
this.panel1.Controls.Add(vScrollBar1);

In the Constructor->

this.vScrollBar1.BackColor= Color.Black;     //<--here is the back color property
this.Invalidate();

Any Suggestions?

2 Answers2

1

Not as simple as you might think, sorry :(

Where does the Backcolor property come from?

You have to understand that System.Windows.Forms.VScrollBar inherits from System.Windows.Forms.ScrollBar that inherits from System.Windows.Forms.Control that got a Backcolor property.

Why doesn't it work?

The System.Windows.Forms.ScrollBar is just a wrapper around the control provided by the Win32 API. Changing the Scrollbar Backcolor is not included there.

What to do?

Basicly you have to inherit from System.Windows.Forms.Control and create your own scrollbar control.

Articles: http://www.codeproject.com/Articles/41869/Custom-Drawn-Scrollbar

Yep, that is totally a reason why people prefer WPF.

BroVirus
  • 164
  • 4
  • I totally agree with you that, people prefer WPF now a days. But, my question is now, if Button inherits from control and the backcolor is changeable, then why not scrollbar? And thank you for your link, i made simple scrollbar using paint on my own though. –  Sep 17 '14 at 17:25
  • Like any other control, you can handle the WM_CTLCOLOR message for the scrollbar control too. You can set the background color and it works - kind of. When the control draws the scrollbar components, it ignores the color set by the WM_CTLCOLOR handler and uses the system color instead. – BroVirus Sep 18 '14 at 02:04
0

See my answer mentioning a custom ScrollBar control that supports custom background colors and themes https://stackoverflow.com/a/73613059/5514131

Ahmed Osama
  • 348
  • 1
  • 9