Домой Графика Цветной ListBox: Справочник по C#

Цветной ListBox: Справочник по C#

567
0


Для раскрашивания элементов 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);

Взято с skillcoding.com

ЧИТАТЬ ТАКЖЕ:  Инверсия изображения: Справочник по C#

Цветной ListBox: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь