Я создаю пользовательский комбинированный список, который может рисовать разделители.Итак, я переопределяю методы OnDrawItem () и OnMeasureItem ().
Проблема в том, что OnMeasureItem () вызывается только один раз при изменении источника данных.Поэтому, если я хочу указать элемент-разделитель позже, мне нужно измерить его высоту (потому что элементы с разделителем должны быть выше), но кажется, что все методы, которые могут привести к измерению высоты элемента, являются частными, поэтому я не могу вызвать их.
Я не знаю, легко ли понять то, что я написал выше, поэтому я повторю то, что мне нужно:
Мне нужно пересматривать высоту элемента (OnMeasureItem () должен вызываться) каждый раз, когда яукажите, что элемент должен быть нарисован с разделителем.
separatorableComboBox.DataSource = customers;
// and now I want the third customer in the list to be drawn with a separator,
// so it needs to be taller and therefore OnMeasureItem() should be called
separatorableComboBox.SpecifySeparatorItem(customers[2]);
UPD. Парни, вызывающие RefreshItems (), работают, но работают очень медленно (> 20 мс на моем компьютере)есть более быстрые методы?
UPD2. Прямо сейчас я использую SendMessage (..., CB_SETITEMHEIGHT, ...);метод, как советовал serge_gubenko.Но мне просто любопытно, есть ли быстрый способ выполнить задачу с помощью .NET (или, точнее, с помощью самого класса ComboBox)?