Справочник по C#

    Исходники по языку программирования CSharp

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

    /
    /
    /
    112 Views


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

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

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest