Изменить цвет перед отключенным списком - PullRequest
8 голосов
/ 21 апреля 2009

Мне нужен черный передний цвет в отключенном комбинированном списке. Возможно ли это?

Ответы [ 5 ]

5 голосов
/ 21 апреля 2009

В прошлом я искал информацию об этом, и, насколько я могу судить, лучшее решение - изменить DrawMode поля со списком на OwnerDrawFixed или OwnerDrawVariable , а затем введите свой собственный код рисования в событии DrawItem поля со списком.

Я нашел эту статью , в которой более подробно рассказывается об этом. Надеюсь, это поможет.

4 голосов
/ 21 апреля 2009

«Хак», который я использовал в прошлом для текстовых полей, - это оставить элемент управления включенным, но перехватить событие «OnFocus» и немедленно установить фокус на какой-то другой объект в форме, предпочтительно метку, так как он не показать как выбранный. Я думаю, что это должно работать и для комбинированных списков.

0 голосов
/ 21 апреля 2009

Не уверен, что ваше приложение Winforms или WPF. Приведенный ниже код работает в приложении WPF.

    combo1.Items.Add("Item 1");
    combo1.Items.Add("Item 2");
    combo1.SelectedIndex = 0;
    combo1.Foreground = Brushes.Black;


В моем XAML я добавил поле со списком и установил для его свойства IsEnabled значение «false», а затем в коде, приведенном ниже, использовал приведенный выше код, и он действительно работает.

НТН

0 голосов
/ 21 апреля 2009

comboBox1.BackColor = Color.Black;

0 голосов
/ 21 апреля 2009

Все, что вам нужно сделать, это сказать

combobox1.ForeColor = Color.FromName("Black");

Не имеет значения, если элемент управления отключен или нет, он должен изменить цвет переднего плана.

...