Как изменить ForeColor SelectedItem в ListBox

В моем проекте возникла небольшая проблема: как я могу изменить основной цвет текста выбранных элементов в ListBox, Я могу выбрать все предметы ListBox но я не знаю, как изменить цвет текста выделенных элементов.

Этот код я использую в моем проекте для выбора элементов списка

for (int i = 0; i < lbProductsToBuy.Items.Count; i++)
{
     lbProductsToBuy.SetSelected(i,true);
}
printreceiptToken1();
dataGridView67.Rows.Clear();

Благодарю. На этих изображениях вы можете видеть пользовательский интерфейс моего приложения. изображение1 и изображение2. Смотрите это последнее изображение, я хочу, чтобы изменить этот выбранный пункт передний цвет.

1 ответ

Вы можете установить DrawMode собственностью ListBox в OwnerDrawFixed а потом ханлде DrawItem Событие контроля и розыгрыша предметов самостоятельно:

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
    var listBox = sender as ListBox;
    var backColor = this.BackColor;         /*Default BackColor*/
    var textColor = this.ForeColor;         /*Default ForeColor*/
    var txt = listBox.GetItemText(listBox.Items[e.Index]);
    if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
    {
        backColor = Color.RoyalBlue;        /*Seletion BackColor*/
        textColor = Color.Yellow;           /*Seletion ForeColor*/
    }
    using (var brush = new SolidBrush(backColor))
        e.Graphics.FillRectangle(brush, e.Bounds);
    TextRenderer.DrawText(e.Graphics, txt, listBox.Font, e.Bounds, textColor,
        TextFormatFlags.VerticalCenter | TextFormatFlags.Left);
}

введите описание изображения здесь

Другие вопросы по тегам