728x90

속성에서 DrawMode 를 변경한다.

DrawItem 이벤트를 추가 한다.

public class ListBoxItemColorMessageSet
{
    public ListBoxItemColorMessageSet(Color c, string m)
    {
        ItemColor = c;
        Message = m;
	}

    public Color ItemColor { get; set; }
    public string Message { get; set; }
}

private void listBox_DrawItem(object sender, DrawItemEventArgs e)
{
    if (e.Index == -1) return;    //아이템이 없는 경우 는 할 일이 없습니다.
    ListBoxItemColorMessageSet item = listBox.Items[e.Index] as ListBoxItemColorMessageSet;

    if (item != null)
    {
        e.Graphics.DrawString
        (item.Message, listBox.Font, new SolidBrush(item.ItemColor), 0, e.Index * listBox.ItemHeight);
    }
    else
    {
    	// The item isn't a ListBoxItemColorMessageSet, do something about it
    }
}

클래스를 추가하고 이벤트안에 코드를 추가한다.

listBox.Items.Add(new ListBoxItemColorMessageSet(Color.Red, "Test"));

그리고 위에 코드를 추가하면 

이렇게 listBox 아이템에 색상을 추가할 수 있다.

프로그램에 적용해서 테스트하다보니 선택이 안된다...

방법을 찾아봐야겠다 후...

 

후...인생........

 

참조:

https://pencv.tistory.com/7

https://afsdzvcx123.tistory.com/entry/C-%EC%9C%88%ED%8F%BC-%EB%AC%B8%EB%B2%95-C-Winform%EC%9C%88%ED%8F%BC-Listbox%EB%A6%AC%EC%8A%A4%ED%8A%B8%EB%B0%95%EC%8A%A4-Item-%ED%95%AD%EB%AA%A9%EC%97%90-Color%EC%83%89%EC%83%81-%EB%84%A3%EA%B8%B0

728x90

+ Recent posts