Для раскрашивания элементов Items контрола ListBox ключевым моментом является правильное использования класса Graphics. Именнно данный класс позволит нам получить цветные строки, раскрасив каждую в свой цвет.
Сперва поместите на форму контрол ListBox:

Ну а в файле кода добавьте следующий код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ColoredListBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
listBox1.DrawMode = DrawMode.OwnerDrawVariable;
listBox1.DataSource =
new object[] { "1","2","3","4","5","6","7" };
listBox1.BackColor = Color.Thistle;
}
private void lstBox_DrawItem(object sender,
System.Windows.Forms.DrawItemEventArgs e)
{
// Перерисовываем фон всех элементов ListBox.
e.DrawBackground();
// Создаем объект Brush.
Brush myBrush = Brushes.Black;
// Определяем номер текущего элемента
switch (e.Index)
{
case 0:
myBrush = Brushes.Red;
break;
case 1:
myBrush = Brushes.Green;
break;
case 2:
myBrush = Brushes.Blue;
break;
default: myBrush = Brushes.Yellow;
break;
}
//Если необходимо, закрашиваем фон
//активного элемента в новый цвет
//e.Graphics.FillRectangle(myBrush, e.Bounds);
// Перерисовываем текст текущего элемента
e.Graphics.DrawString(
((ListBox)sender).Items[e.Index].ToString(),
e.Font, myBrush, e.Bounds,
StringFormat.GenericDefault);
// Если ListBox в фокусе, рисуем прямоугольник
//вокруг активного элемента.
e.DrawFocusRectangle();
}
}
}
И обязательно подпишитесь на событие listBox1.DrawItem:
this.listBox1.DrawItem +=
new System.Windows.Forms.DrawItemEventHandler(
this.lstBox_DrawItem);
Вот то, что мы хотели получить, легко и быстро:

Надеюсь комментарии подробно все описывают, поэтому объяснять работу данного кода я не стану.
Успехов!
Оценить статью:
Оценивая статью, Вы подсказываете нам насколько данная информация стала
полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала
для понимания и простоты его изложения. Дополнительные комментари, вопросы,
дополнения и замечания Вы можете указать на странице
От Вас
Частичное, или полное копирование материала данной
статьи возможно лишь при размещении ссылки на данную страницу.