什么行为触发DrawItem事件?

jdcrystal 2008-07-28 03:30:48
什么行为触发DrawItem事件?最好举个例子说明,怎么做就会执行该市建立的代码?还有下面这段代码执行了却看不到线,为什么?
Graphics g =this.CreateGraphics();
Pen p = new Pen(Color.Black);
p.DashStyle =System.Drawing.Drawing2D.DashStyle.Solid;
p.Width = 3;
g.DrawLine(p, 0, 0, 100, 100);
...全文
874 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
h_w_king 2008-07-28
  • 打赏
  • 举报
回复
很多控件都有DrawItem事件,只要重绘该控件都会触发该事件.
但在属性中要设置this.listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; //以listbox为例.
jdcrystal 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hbxtlhx 的回复:]
你可以调用控件实例本身的Invalidate()方法就可以让DrawItem之类的方法执行。

你没有看到效果,可能是它绘制了,但是被后来的其它绘制给覆盖了。或者你不能使用this.CreateGraphics()方法,而应该尽量的使用Paint(或OnPaint)方法的参数e.Graphics。
[/Quote]

为什么不能使用this.CreateGraphics()方法?
jdcrystal 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hbxtlhx 的回复:]
你可以调用控件实例本身的Invalidate()方法就可以让DrawItem之类的方法执行。

你没有看到效果,可能是它绘制了,但是被后来的其它绘制给覆盖了。或者你不能使用this.CreateGraphics()方法,而应该尽量的使用Paint(或OnPaint)方法的参数e.Graphics。
[/Quote]


我刚试了Invalidate()方法还是没有触发DrawItem事件,我在DrawItem事件里加上断点都执行不到那,
北京的雾霾天 2008-07-28
  • 打赏
  • 举报
回复
你可以调用控件实例本身的Invalidate()方法就可以让DrawItem之类的方法执行。

你没有看到效果,可能是它绘制了,但是被后来的其它绘制给覆盖了。或者你不能使用this.CreateGraphics()方法,而应该尽量的使用Paint(或OnPaint)方法的参数e.Graphics。
zzyhuian06142 2008-07-28
  • 打赏
  • 举报
回复
在ComboBox加载下拉框的时候会触发

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧