Member 9983063 Ответов: 1

Как изменить цвет шрифта списка выбранных элементов C#


как изменить цвет шрифта списка выбранных элементов C# при нажатии кнопки

Что я уже пробовал:

for (int i = 0; i < lbProductsToBuy.Предметы.Граф; i++)
{
lbProductsToBuy.SetSelected(i, true);
я.свойство fontcolor = цвет.Красный;
}
но это не работает

Afzaal Ahmad Zeeshan

Integer не имеет определения для "fontcolor". Вместо этого вам нужно использовать коллекцию элементов, а затем выбрать элемент по адресу iиндекс th.

1 Ответов

Рейтинг:
2

RossMW

Вы пытаетесь изменить цвет элемента int I, а не элемента listbox.

Используйте режим рисования владельца списка. Выберите свой список в режиме дизайна и измените свойство DrawMode на OwnerDrawFixed. Теперь прикрепите обработчик к событию DrawItem, а затем используйте методы графического класса, чтобы нарисовать вашу строку любым цветом или шрифтом, который вам нравится. Примером того, что вам нужно сделать в DrawItem, может быть:

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)

   MyListBoxItem item = listBox1.Items[e.Index] as MyListBoxItem; // Get the current item and cast it to MyListBoxItem
    if (item != null) 
    {
        e.Graphics.DrawString( // Draw the appropriate text in the ListBox
            item.Message, // The message linked to the item
            listBox1.Font, // Take the font from the listbox
            new SolidBrush(item.ItemColor), // Set the color 
            0, // X pixel coordinate
            e.Index * listBox1.ItemHeight // Y pixel coordinate.  Multiply the index by the ItemHeight defined in the listbox.
        );
    }


Member 9983063

lbProductsToBuy.Пункт[I]. Передний План = Система.Рисование.Цвет.Красный;
Сэр это не работает

Member 9983063

сэр я хочу изменить некоторые вещи изменить цвет не цвет фона

RossMW

Извиняюсь. Сделал быстрый тест и обнаружил, что список не может сделать это изначально, так что вам придется копаться в его Луках. См. раздел Обновление решения

RossMW

Лично не проверял. разве передний план - это не вариант?

Member 9983063

да есть 4 варианта равных gettype и getdatatype и tostring вот и все

RossMW

Попробуй

Mylistboxitem item = listBox1.Элементы[электронный.Index] as MyListBoxItem; / / получить текущий элемент и привести его к MyListBoxItem
if (item != null)
{
е.Графика.DrawString (//нарисуйте соответствующий текст в списке
пункт.Сообщение, / / сообщение, связанное с элементом
listBox1. Font, / / возьмите шрифт из списка
новая твердая кисть (пункт.ItemColor), / / установить цвет
0, / / x пиксельная координата
е.Алфавитный указатель * список listbox1.Помощью itemheight // г пиксельных координат. Умножьте индекс на высоту элемента, определенную в списке.
);
}

RossMW

Работаете допоздна ?

BillWoodruff

- Лично не проверял."

Если вы публикуете код, который не писали и никогда не использовали, то, пожалуйста, дайте ссылку на источник.

RossMW

Прости Мама