winforms 垂直滚动条颜色未更改

htrmnn0y  于 2022-11-17  发布在  其他
关注(0)|答案(2)|浏览(174)

我是一个C升的新手。我创建了一个垂直滚动条(VScrollBar)。我想改变滚动条的背景颜色。因为它是从控件继承的,所以当我改变颜色时,它不起任何作用。在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();

有什么建议吗?

zy1mlcev

zy1mlcev1#

不像你想的那么简单,对不起:(

Backcolor属性来自何处?

您必须了解,System.Windows.Forms.VScrollBar继承自System.Windows.Forms.ScrollBar,而后者继承自具有Backcolor属性的System.Windows.Forms.Control。
"为什么不管用"
System.Windows.Forms.ScrollBar只是Win32API提供的控件的 Package 函数。其中不包括更改滚动条背景色。
"怎么办"
基本上,您必须继承System.Windows.Forms.Control并创建自己的滚动条控件。

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

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

hwazgwia

hwazgwia2#

请参阅我的回答,其中提到了一个支持自定义背景颜色和主题https://stackoverflow.com/a/73613059/5514131的自定义ScrollBar控件

相关问题