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

解决方案 »

  1.   

    在ComboBox加载下拉框的时候会触发
      

  2.   

    你可以调用控件实例本身的Invalidate()方法就可以让DrawItem之类的方法执行。你没有看到效果,可能是它绘制了,但是被后来的其它绘制给覆盖了。或者你不能使用this.CreateGraphics()方法,而应该尽量的使用Paint(或OnPaint)方法的参数e.Graphics。
      

  3.   

    我刚试了Invalidate()方法还是没有触发DrawItem事件,我在DrawItem事件里加上断点都执行不到那,
      

  4.   


    为什么不能使用this.CreateGraphics()方法?
      

  5.   

    很多控件都有DrawItem事件,只要重绘该控件都会触发该事件.
    但在属性中要设置this.listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; //以listbox为例.