Элементы списка не видны, но на них можно кликнуть

У меня был список и элементы в нем. И все работает нормально, пока я не укажу высоту элемента в списке:

private void lsbMatchingWords_MeasureItem(object sender, MeasureItemEventArgs e)
    {
        e.ItemHeight = 30;
    }

а также сделал

listbox1.DrawMode = DrawMode.OwnerDrawVariable;

После этого элементы списка не видны, но когда я нажимаю, появляются элементы, и событие щелчка элемента вызывает ара.

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


и

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

Что может быть причиной ?


person Gamer In The Game    schedule 30.07.2021    source источник
comment
Когда вы устанавливаете DrawMode.OwnerDrawVariable, вы должны сами рисовать Элементы, подписавшись на DrawItem. Вы можете изменить и адаптировать этот код: Как добавить многострочный текст в элемент ListBox?   -  person Jimi    schedule 30.07.2021
comment
Я установил его при загрузке формы и изменил только itemHeight. Ничего больше. Должен ли я установить другие тонкости самостоятельно?   -  person Gamer In The Game    schedule 30.07.2021
comment
Неважно, когда вы его установили: когда он установлен, вы отвечаете за рисование предметов. Это также позволяет выполнять множество настроек, как вы можете видеть в сообщении, на которое я ссылаюсь. Если вы не хотите ничего персонализировать, просто нарисуйте значение по умолчанию. Или не устанавливайте DrawMode.OwnerDrawVariable, решать вам.   -  person Jimi    schedule 30.07.2021
comment
Как я могу нарисовать свой собственный предмет?   -  person Gamer In The Game    schedule 30.07.2021
comment
Я разместил ссылку в своем первом комментарии, где есть код, который делает именно это. Это пользовательский элемент управления, который наследует ListBox. Вы можете сделать то же самое (создать этот пользовательский элемент управления и адаптировать его код на свой вкус) или просто подписаться на событие DrawItem, как уже упоминалось. Это зависит от того, насколько глубоко вы хотите зайти.   -  person Jimi    schedule 30.07.2021
comment
Это другое, вероятно, проще: элементы ListBox не отображаются в режиме OwnerDrawFixed. Это стандартный ListBox со значением DrawMode.OwnerDrawVariable, использующий событие DrawItem для рисования простых строк, но с пользовательскими цветами фона/переднего плана и выделения.   -  person Jimi    schedule 30.07.2021
comment
@Jimi спасибо за вашу помощь, и я думаю, что понял, как я могу создать свой собственный список.   -  person Gamer In The Game    schedule 30.07.2021