阅读量:3
要设置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事件来自定义项的绘制。在绘制项时,根据项的选中状态设置不同的颜色。您还可以根据需要修改绘制项的方式和颜色。