日期:2014-05-18  浏览次数:20880 次

什么行为触发DrawItem事件?
什么行为触发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);

------解决方案--------------------
在ComboBox加载下拉框的时候会触发
------解决方案--------------------
你可以调用控件实例本身的Invalidate()方法就可以让DrawItem之类的方法执行。

你没有看到效果,可能是它绘制了,但是被后来的其它绘制给覆盖了。或者你不能使用this.CreateGraphics()方法,而应该尽量的使用Paint(或OnPaint)方法的参数e.Graphics。
------解决方案--------------------
很多控件都有DrawItem事件,只要重绘该控件都会触发该事件.
但在属性中要设置this.listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; //以listbox为例.