[c#] ListBox 아이템의 색 설정하기

리스트 박스 아이템의 색을 설정하려면 DrawMode를 바꿔야 한다. 이걸 바꾸면 직접 제어하겠다는 거다. 크기도 바꿀 수 있다. 이럴 땐 variable로 선택한다.

아래 예제는 특정 아이템을 골라서 색을 바꾸는 거다. 다 그린 다음에 리스트 박스에서 루프를 돌리는 거보다 리스트에 담을 때 표시를 하는 게 좋다. 눈에 보이지 않는 탭 문자를 아이템의 끝에 붙여서 색을 다르게 할 아이템을 구별했다.

List<string> List1 = new() { "abcde", "12345\t", "!@#$%" };

private void Form1_Load(object sender, EventArgs e) // DrawMode change necessary
{
    listBox1.DataSource = List1;
}

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawBackground(); // initialize

    if (List1[e.Index].Contains('\t'))
    {
        e.Graphics.DrawString(List1[e.Index], e.Font, Brushes.Red, e.Bounds);
    }
    else
    {
        e.Graphics.DrawString(List1[e.Index], e.Font, Brushes.Black, e.Bounds);
    }
}