как изменить стиль шрифта элемента внутри элемента списка с помощью С# и winforms

У меня есть список с элементами....

                 say Listboxitem1
                     listboxitem2
                     listboxitem3...

Можно ли изменить стиль элемента listboxitem1...

Я видел этот код для изменения цвета фона выбранного элемента списка, но я не нашел решения для изменения стиля элемента в элементе списка....

приведенный ниже код предназначен для изменения цвета фона выбранного элемента в списке. но я не нашел никакого свойства для изменения стиля элемента (например, шрифта)

      if (e.Index < 0) return; 
    // if the item state is selected then change the back color  
    if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) 
        e = new DrawItemEventArgs(e.Graphics, 
                                  e.Font, 
                                  e.Bounds, 
                                  e.Index, 
                                  e.State ^ DrawItemState.Selected, 
                                  e.ForeColor, 
                                  Color.Red); // Choose the color 

    // Draw the background of the ListBox control for each item. 
    e.DrawBackground(); 
    // Draw the current item text 
    e.Graphics.DrawString(listbox1.Items[e.Index].ToString(), e.Font, Brushes.Black, e.Bounds, StringFormat.GenericDefault); 
    // If the ListBox has focus, draw a focus rectangle around the selected item. 
    e.DrawFocusRectangle();

может у кого есть мысли по этому поводу..

Большое спасибо..


person Enigma State    schedule 23.08.2011    source источник


Ответы (1)


вы видите e.Font в своем собственном коде? Просто используйте другой шрифт там;)

person Random Dev    schedule 23.08.2011
comment
Я пробовал использовать этот шрифт fontstyle.bold вместо e.font, но он не работает .... с помощью этого вы можете изменить стиль шрифта только для выбранных элементов, а не для всех элементов ..... есть ли другой вариант. .... - person Enigma State; 24.08.2011
comment
посмотрите - я не вижу, где находится этот код, но я думаю, что он находится в Userdraw элемента, верно? Если да, то вы можете сделать, как я сказал. Просто попробуйте использовать шрифт, а не стиль шрифта вместо e.Font в коде e.Graphics.DrawString. Вы должны предоставить что-то вроде «новый шрифт (e.Font, FontStyle.Bold)». - person Random Dev; 24.08.2011
comment
ты имеешь в виду, что мне нужно изменить в этой строке....e.Graphics.DrawString(listbox1.Items[e.Index].ToString(), e.Font, Brushes.Black, e.Bounds, StringFormat.GenericDefault) ; - person Enigma State; 24.08.2011
comment
да, другой изменит только шрифт выбранного элемента (он просто заменяет текущий параметр eventargs) - person Random Dev; 24.08.2011