I think you need to draw your own CheckedListBox item as follows:
public class CustomCheckedListBox : CheckedListBox { public CustomCheckedListBox() { DoubleBuffered = true; } protected override void OnDrawItem(DrawItemEventArgs e) { Size checkSize = CheckBoxRenderer.GetGlyphSize(e.Graphics, System.Windows.Forms.VisualStyles.CheckBoxState.MixedNormal); int dx = (e.Bounds.Height - checkSize.Width)/2; e.DrawBackground(); bool isChecked = GetItemChecked(e.Index);
If you want to set CheckedColor differently for each element, you need to save the CheckedColor parameter for each element (for example, in a collection) and specify CheckedColor using Index . However, I think this will work a little. Therefore, if you have such a requirement, it is better to choose a ListView .
source share