我是一个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();
有什么建议吗?
2条答案
按热度按时间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的一个原因。
hwazgwia2#
请参阅我的回答,其中提到了一个支持自定义背景颜色和主题https://stackoverflow.com/a/73613059/5514131的自定义ScrollBar控件