垂直滚动条颜色不会更改

时间:2014-09-13 10:06:00

标签: c# winforms vertical-scrolling backcolor

我是C sharp的新手。我创建了一个垂直滚动条(VScrollBar)。我想改变滚动条的Backcolor的颜色。由于它是从Control继承的,当我改变颜色时它不会产生任何影响。 在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);

在构造函数中 - >

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

任何建议?

1 个答案:

答案 0 :(得分:1)

不像你想象的那么简单,抱歉:(

Backcolor属性来自哪里?

您必须了解System.Windows.Forms.VScrollBar继承自System.Windows.Forms.Control的System.Windows.Forms.ScrollBar,后者获得了Backcolor属性。

为什么不起作用?

System.Windows.Forms.ScrollBar只是Win32 API提供的控件的包装器。 不包括更改滚动条背景颜色。

怎么做?

基本上你必须从System.Windows.Forms.Control继承并创建自己的滚动条控件。

<强>文章: http://www.codeproject.com/Articles/41869/Custom-Drawn-Scrollbar

是的,这完全是人们喜欢WPF的原因。