Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Заполнение CheckedListBox своим методом


Автор: gruverQ 11.5.2006, 19:32
Проблема в следующем: 
При попытке организовать ручной вывод элементов в CheckedListBox, методом CheckedListBox_DrawItem

private void CheckedListBox_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
   …… 
  e.Graphics.DrawString(CheckedListBox.Items[e.Index].name.ToString(),e.Font,Brush,e.Bounds, StringFormat.GenericDefault);
   ....
   
}

как реакцию на событие DrawItem у CheckedListBox, оказалось, что для такого вывода необходимо, чтобы
CheckedListBox1.DrawMode= DrawMode.OwnerDrawFixed;
(OwnerDrawFixed - Рисование всех элементов в элементе управления выполняется вручную) 

а в RUS MSDN  нашел следующее: 
"Примечание.   Класс CheckedListBox поддерживает только DrawMode.Normal; режимы рисования владельца игнорируются."

Как же мне организовать собственный вывод?
Для ListBox все работает, проверил, но в нем отсутствует та главная черта, которая отличает ListBox от CheckedListBox.  smile 

Я уже подумываю наследовать ListBox, но может у кого-нить есть более простое решение.













----
     

Автор: mr.DUDA 12.5.2006, 11:08
Можно унаследоваться от CheckedListBox и перекрыть метод OnPaint. Там рисовать что угодно и как угодно smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)