[C#] CheckedListBox Item 별로 색깔 다르게 하기
[C#] CheckedListBox Item 별로 색깔 다르게 하기
아이템별로 색깔 좀 다르게 할라 했더니 구글이가 모르는 척-_-;;;
그래도 결국 찾아서 약간(?) 다듬해서 만듬~ 에이~~ 시간아까워
예제 코드
public partial class ColorCheckedListBox : CheckedListBox
{
Color[] m_crForeColor;
public ColorCheckedListBox()
{
InitializeComponent();
for (int i = 0; i < 7; i++)
{
this.Items.Add(i + "번째 아이템");
}
MakeForeColor();
}
public void MakeForeColor()
{
m_crForeColor = new Color[Items.Count];
Random r = new Random();
for (int i = 0; i < Items.Count; i++)
{
int R = r.Next(0, 256);
int G = r.Next(0, 256);
int B = r.Next(0, 256);
m_crForeColor[i] = Color.FromArgb(R, G, B);
}
}
protected override void OnDrawItem(DrawItemEventArgs e)
{
if (m_crForeColor.Length <= e.Index)
{
base.OnDrawItem(e);
return;
}
DrawItemEventArgs e2 =
new DrawItemEventArgs(
e.Graphics, e.Font, new Rectangle(e.Bounds.Location, e.Bounds.Size),
e.Index, e.State, m_crForeColor[e.Index],
e.BackColor);
base.OnDrawItem(e2);
}
}