要設置CheckedListBox中不同項的顏色,您可以使用OwnerDraw屬性來自定義項的繪制,然后在繪制項時設置不同項的顏色。
以下是一個示例代碼,演示如何設置CheckedListBox中不同項的顏色:
private void checkedListBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index < 0) return;
// 獲取CheckedListBox控件
CheckedListBox clb = (CheckedListBox)sender;
// 創建畫刷
Brush brush = Brushes.Black;
if (clb.GetItemChecked(e.Index))
{
brush = Brushes.Red;
}
else
{
brush = Brushes.Green;
}
// 繪制項的文本
e.DrawBackground();
e.Graphics.DrawString(clb.Items[e.Index].ToString(), e.Font, brush, e.Bounds, StringFormat.GenericDefault);
// 如果項被選中則繪制復選框
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
ControlPaint.DrawCheckBox(e.Graphics, e.Bounds.Left + 1, e.Bounds.Top + 1, 12, 12, ButtonState.Flat | ButtonState.Checked);
}
else
{
ControlPaint.DrawCheckBox(e.Graphics, e.Bounds.Left + 1, e.Bounds.Top + 1, 12, 12, ButtonState.Flat | ButtonState.Normal);
}
e.DrawFocusRectangle();
}
在上面的代碼中,我們使用了CheckedListBox的DrawItem事件來自定義項的繪制。在繪制項時,根據項的選中狀態設置不同的顏色。您還可以根據需要修改繪制項的方式和顏色。