如题:最好给出详细代码。另外vs2008不支持画横线了 怎么用重载onPaint事件,用System.Drawing.Graphics.DrawLine画
来实现呢??? 谢谢

解决方案 »

  1.   

    问的太笼统了。vs2008不支持画横线了
    这谁告诉你的?你自己不是贴了方法了?
    System.Drawing.Graphics.DrawLine
      

  2.   

    public class MyButton : Button
    {
        protected override void OnPaint(PaintEventArgs pevent)
        {
            base.OnPaint(pevent);
            pevent.Graphics.DrawLine(Pens.Black, 0, 0, 100, 150);//花一条线
        }
    }
      

  3.   

    OnXX是响应消息的
    响应事件的方法是通过
    对象.事件 += 方法
    注册上去的。这个不是重载的。如果你要写某个窗体继承自某个窗体。这种很特殊的设计,只要把方法写成虚函数,子类override就可以了。明白了么?
      

  4.   

    哦 明白了,其实我是想画条横线 但VS2008没这个控件 上网搜, 别人说   重载onPaint事件,用System.Drawing.Graphics.DrawLine画 但不知道怎么写 就来求代码了 消消气
      

  5.   

    不知道他说的这个(上网搜, 别人说  重载onPaint事件,用System.Drawing.Graphics.DrawLine画  
    ) 重载是不是 指重写 应该是
      

  6.   

    我知道重写和重载 大哥们看这句话:上网搜的, 别人说  重载onPaint事件,用System.Drawing.Graphics.DrawLine画那这人说的就是错的, 应该是重写onPaint事件误导人啊!
      

  7.   

    这个的确叫重载,重载的不是事件响应函数。重载的是消息响应函数,.net再封装,也是windows上运行的,基于消息的操作系统,一切都要处理消息,OnPaint就是对应处理WM_PAINT消息的,进而在base.OnPaint方法中触发Paint事件。
    重载OnPaint使用我贴给你的那个的确是可以绘制线。但自己做一个Line控件,难点不是这里,而是如何在设计时可以呈现一个较好的操作。运行时么,你要知道。控件不透明的,会已一个外接矩形遮住下面部分,你还需要创建异型控件。否则你即便控件透明了,但依然会挡住鼠标消息。
    没生气,不用消气 :)