Я реализовал методы MeasureItem и DrawItem в своем исправленном списке C#, нарисованном владельцем.
Ничего не появляется.
В отчаянии я добавил три случайные строки в коллекцию Items, и ПОЯВИЛИСЬ ПЕРВЫЕ ТРИ МОИХ ПУНКТА!
Это говорит мне, что список не знал, что есть элементы. Должен ли я добавлять сотни фиктивных предметов в коллекцию «Предметы» только для того, чтобы увидеть МОИ предметы?? Это дингбатти; Должен быть способ СКАЗАТЬ в списке, сколько элементов есть - я просто не могу его найти!
Как вы устанавливаете количество элементов в нарисованном владельцем списке?
Код:
private void listVersions_MeasureItem (object sender, MeasureItemEventArgs e)
{
e.ItemHeight = font.Height + 6;
}
private void listVersions_DrawItem (object sender, DrawItemEventArgs e)
{
if (entries == null)
return;
int i = e.Index;
if (i < 0 || i >= entries.Count)
return;
e.Graphics.FillRectangle (new SolidBrush (BackColor), e.Bounds);
VersionEntry ent = entries[i];
Rectangle rect = e.Bounds;
Graphics g = e.Graphics;
g.DrawString (i.ToString () + " " + ent.name, font, Brushes.Black, rect.Location);
}