К сожалению, Visual Studio 2017 (2019?) все еще не очень хорошо работает с 64-битными элементами управления в панели инструментов. В первую очередь это связано с тем, что VS является 32-разрядным приложением.
Обычное решение - создать проект, содержащий ваши пользовательские элементы управления для платформы «Любой процессор». Это может даже означать создание отдельного проекта библиотеки классов для их размещения.
Быстрое и простое (субъективное) решение состоит в добавлении пользовательских элементов управления в код Form
и избегании конструктора.
Если изменение ItemHeight
- это только творческая вещь , которую вы хотите сделать, я предложу обходной путь, использующий стандартный CheckedListBox
элемент управления и отражения.
В вашем конструкторе Form
, после строки InitializeComponent();
, сделайте следующее:
var heightField = typeof(CheckedListBox).GetField(
"scaledListItemBordersHeight",
BindingFlags.NonPublic | BindingFlags.Instance
);
var addedHeight = 10; // Some appropriate value, greater than the field's default of 2
heightField.SetValue(clb, addedHeight); // Where "clb" is your CheckedListBox
Это требует:
using System.Reflection;
Это работает, потому что внутренне , ItemHeight
- свойство только для чтения, которое возвращает Font.Height + scaledListItemBordersHeight
.