kolorowanie rekordow w listbox

0

witam

Pracuje nad programikiem w winformie, gdzie w pewnym momencie pokazuje okienko z paroma id'kami produktów w formie stringa jako listbox.
Chcę, aby użytkownik miał 3 przyciski, które po kliknieciu zmieniają kolor tła/ kolor czcionki zaznaczonego obecnie elementu. Każdy button powinien mieć oczywiście swój osoby kolor.

na obecną chwile kod wygląda mniej więcej tak.. wiadomo, ze jest dużo do poprawy, ale na razie chciałbym osiągnąc zamierzony efekt.

Pytanie jak to osiągnąć..

   public List<string> listaUslugJednorazowych = new List<string>(); 
    public notFoundsForm(List<string> notFoundList)
    {
        InitializeComponent();
        listBox1.DataSource = notFoundList;

    }

    private void button1_Click(object sender, EventArgs e)
    {
        listaUslugJednorazowych.Add(listBox1.SelectedItem.ToString());
        listBox1.DrawMode = DrawMode.OwnerDrawFixed;
        listBox1.DrawItem += new DrawItemEventHandler(listBox_DrawItem);
    }

    void listBox_DrawItem(object sender, DrawItemEventArgs e)
    {
        if(e.Index == listBox1.SelectedIndex)
        {
            e.Graphics.FillRectangle(Brushes.Red, e.Bounds);

        }
        if (e.Index > -1)
        {

            using (Brush textBrush = new SolidBrush(e.ForeColor))
            {
                e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, textBrush, e.Bounds.Location);
            }
        }
    } 
1

A rozważałeś użycie ListView w przypadku tej kontrolki nie trzeba się bawić bo masz tam właściwości BackColor i ForeColor dla każdego elementu listy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1