Сделать созданный владельцем ListBox в C#

В этом примере показано, как вы можете сделать созданный владельцем ListBox. Обычно ListBox отображает текстовое представление своих объектов, но вы можете изменить это поведение, чтобы он отображал все, что вы можете нарисовать. В этом примере отображаются несколько многострочных текстовых записей.

Обработчик события Load формы использует следующий код, чтобы сделать свой собственный ListBox образ владельца и создать несколько многострочных текстовых элементов.

Когда вы создаете владельца ListBox, вы должны предоставить ему два обработчика событий: MeasureItem, чтобы определить, насколько важны элементы и DrawItem , чтобы нарисовать элементы. В следующем коде показан обработчик события MeasureItem примера.

...

Этот код получает ListBox из параметра sender обработчика события. Затем он получает элемент ListBox, который он должен рисовать.

В следующем коде показан обработчик события DrawItem программы.

Код получает ListBox и элемент для рисования, как и раньше. Затем он вызывает e.DrawBackground, чтобы нарисовать соответствующий фон. Это автоматически использует правильный цвет в зависимости от того, выбран ли элемент в данный момент

Затем код проверяет параметр e.State, чтобы определить, установлен ли флаг Selected. Если флаг установлен, программа рисует текст элемента с помощью кисти HighlightText системы. Если флаг не установлен, программа создает кисть с использованием цвета переднего плана элемента управления ListBox и рисует элемент вместе с ним.

После того, как он нарисовал элемент, программа вызывает e.DrawFocusRectangle для рисования прямоугольника фокуса вокруг элемента, если это необходимо.

Источник: http://csharphelper.com/blog/2014/11/make-an-owner-drawn-listbox-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *