Мне нужно чередовать цвет предметов в моем CheckedListBox
, но «alternatingColors» не является собственностью CheckedListBox
.Альтернативный цвет фона строк в CheckedListBox?
Как мне изменить цвет предметов?
Мне нужно чередовать цвет предметов в моем CheckedListBox
, но «alternatingColors» не является собственностью CheckedListBox
.Альтернативный цвет фона строк в CheckedListBox?
Как мне изменить цвет предметов?
Я не думаю, что это даже возможно. Вы можете захотеть использовать другой элемент управления для того, что вам нужно. DataGridView может работать для вас лучше.
. Этот ответ был бы лучше, если бы вы включили некоторый пример кода, показывающий, как' DataGridView 'может использоваться для замены' CheckedListBox'. –
Да, это было бы допинг – Alecks
Событие OnDrawItem
недоступно по умолчанию, но если вы вывели новый элемент управления на основе CheckedListBox
, вы можете переопределить базовое событие.
public class MyCheckedListBox : CheckedListBox
{
private SolidBrush primaryColor = new SolidBrush(Color.White);
private SolidBrush alternateColor = new SolidBrush(Color.LightGreen);
[Browsable(true)]
public Color PrimaryColor
{
get { return primaryColor.Color; }
set { primaryColor.Color = value; }
}
[Browsable(true)]
public Color AlternateColor
{
get { return alternateColor.Color; }
set { alternateColor.Color = value; }
}
protected override void OnDrawItem(DrawItemEventArgs e)
{
base.OnDrawItem(e);
if (Items.Count <= 0)
return;
var contentRect = e.Bounds;
contentRect.X = 16;
e.Graphics.FillRectangle(e.Index%2 == 0 ? primaryColor : alternateColor, contentRect);
e.Graphics.DrawString(Convert.ToString(Items[e.Index]), e.Font, Brushes.Black, contentRect);
}
}
По умолчанию он будет чередоваться между белым и зеленым. Внесите изменения в панель «Свойства» во время разработки или во время выполнения.
Это потрясающе. Итак, как только я создаю класс и добавляю эту форму, как я могу поместить MyCheckedListBox в мою оконную форму? Я не могу просто перетащить его из панели инструментов. – Alecks
Попробуйте перестроить решение. Возможно, придется закрыть/снова открыть решение. Он должен [показать в панели инструментов] (http://i.stack.imgur.com/2VQ3s.png), а затем вы можете просто перетащить его в форму. _ (или перетащите нормальный CheckedListBox и измените пару строк в файле .Designer.cs, чтобы указать на новый элемент управления) _ –
Применить переменные классы CSS к каждому элементу. – jackncoke
@jackncoke Довольно уверен, что 'CheckedListBox' является элементом управления WinForms. –
Было бы полезно, если бы вы разработали стек, который используете. Это для WPF, Winforms, MVC и т. Д.? – thinklarge