【发布时间】:2014-05-12 03:21:08
【问题描述】:
我已经在我的 C# owner-drawn-fixed listbox 中实现了 MeasureItem 和 DrawItem 方法。
什么都没有。
出于绝望,我在 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);
}
【问题讨论】:
-
你能展示你的代码吗?
-
把这个贴到你的帖子上。它看起来会好很多。另外,您是否正在寻找OnPropertyChanged?
-
我看不出 OnPropertyChanged 有什么帮助;没有任何变化:我只想显示一个列表。
-
"entries" 是一个包含要绘制的项目的列表。自绘列表框的全部目的是显示条目。当我将虚拟项目添加到 Items 集合时,条目项目被正确绘制。看起来唯一的问题是告诉列表框有多少项目。
标签: c# listbox numbers ownerdrawn