2014-09-13 2 views
-1

Я новичок в 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); 

В Constructor->

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

предложения?

+0

Пожалуйста, введите код – VladL

+0

Я добавил строки после initializecompotents() -> 1.vScrollBar.BackColor = Color.Black; 2.vScrollBar.Invalidate(); – WildPoisoned

+0

В будущем напишите код в вопросе. Нам будет легко прочитать его, и вы не будете проголосовать. Надеюсь, мой ответ вам поможет. – mybirthname

ответ

1

не так просто, как вы могли бы подумать, извините :(

Где свойство BACKCOLOR взялось?

Вы должны понимать, что System.Windows.Forms.VScrollBar наследует от System.Windows .Forms.ScrollBar, который наследует от System.Windows.Forms.Control, который получил свойство BackColor.

Почему не работает?

System.Windows.Forms.ScrollBar - это всего лишь обертка вокруг элемента управления, предоставляемого API Win32. Изменение полосы прокрутки Цвет фона не включен.

Что делать?

В основном вы должны унаследовать от System.Windows.Forms.Control и создать свой собственный элемент управления полосой прокрутки.

Статьи: http://www.codeproject.com/Articles/41869/Custom-Drawn-Scrollbar

Да, это совершенно причина, почему люди предпочитают WPF.

+0

Я полностью согласен с вами в том, что люди предпочитают WPF сейчас дней. Но, мой вопрос сейчас, если Button наследует от контроля, а backcolor изменчив, то почему бы не полоса прокрутки? И спасибо за вашу ссылку, я сделал простую полосу прокрутки, используя краску самостоятельно. – WildPoisoned

+0

Как и любой другой элемент управления, вы можете обрабатывать сообщение WM_CTLCOLOR для элемента управления полосой прокрутки. Вы можете установить цвет фона, и он работает - вроде. Когда элемент управления рисует компоненты полосы прокрутки, он игнорирует цвет, заданный обработчиком WM_CTLCOLOR, и вместо этого использует цвет системы. – BroVirus

 Смежные вопросы

  • Нет связанных вопросов^_^