有好几个问题,请大家帮忙,谢谢。1.就是我自定义了一个控件,用来画图的,上面什么东西都没。我在winform上引用这个控件,怎么样让它有滚动条呢?2.Rectangle rectangle = new Rectangle(100,100, 50, 30);这个坐标是屏幕的坐标吧,怎么样弄成相对于控件的坐标的? 就是在拉动滚动条后,它的位置还是在相对于控件的那个位置不知道我的描述有没有清楚,请大家教教,谢谢!

解决方案 »

  1.   

    你基础不够,别玩自定义控件,那个就算是高手也不见得能做好。画图时需要指定画图所用的设备,你指定为某个控件为画板时,那个坐标就是相对于那个控件的,而非屏幕左边,但是控件上画图和设置控件背景图片是两码事,因为控件都有OnPaint事件,必须在那个事件里画图,否则一旦控件刷新(有滚动事件就一定会刷新),这所画的图就会消失。
      

  2.   

    这个坐标是屏幕的坐标吧?不是,这个是你画板的坐标,即你的g.CreateGrapicsFrom  不是屏幕
    另外建议 你用别的控件,组合成你想要的效果,如果,你想完全自定义,很多情况可能忽视 
      

  3.   

    1.鼠标事件MOUSEDOWN,MOUSEMOVE,MOUSEUP
    2.Graphics gr=this.CreateGraphics();
      gr.DrawLine(new Pen(Color.Blue),X,Y,e.X,e.Y);