返回信息流【 以下文字转载自 dotNET 讨论区 】
发信人: FadeToBlack (烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫*&^), 信区: dotNET
标 题: [求助]问一个UserControl放到ListBox中的问题
发信站: 北邮人论坛 (Wed Mar 9 14:41:42 2011), 站内
我在程序中创建了一个UserControl UC,然后插入到一个ListBox中。ListBox里我设置了OwnerDrawFixed属性。
ListBox的DrawItem事件处理函数如下
void ListBox_DrawItem(caller, eventArgs)
{
if (eventArgs.Index > 0)
{
UC uc = (UC)listBox.Items[eventArgs.Index];
PaintEventArgs pea = new PaintEventArgs(eventArgs.Graphics, eventArgs.Bounds);
uc.draw(pea);
}
}
UC中draw方法如下:
void draw(PaintEventArgs Args)
{
OnPaint(Args);
}
奇怪的是在UC被加入ListBox后无法显示出来,而要是直接使用UC(而不是放到ListBox)中却又能正常显示。
请问一下正确应该怎么做,另外为什么上面的代码不能起到预期的效果?谢谢!
PS. 在DrawItem里面手工使用eventArgs.Graphics去画倒是可以显示出来,但是实际中UC里比较复杂,手工去画控件的话代价太大了。
这是一条镜像帖。来源:北邮人论坛 / soft-design / #40234同步于 2011/3/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
[求助]问一个UserControl放到ListBox中的问题 (转载)
FadeToBlack
2011/3/9镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
dead end..
http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/9721308d-52f8-430b-aad6-69661c18d5f1