怎么实现单击鼠标,拖动,画线的动作
我用newGra.FillEllipse(new SolidBrush(Color.Black), e.X ,e.Y,5,5);鼠标移快一点就变成虚线了
可以的话,给出代码实例
象遨游点击鼠标右键可以在界面上瞎画一样。

解决方案 »

  1.   


    化直线,貌似是用g.drawline吧,要是只是画直线,应该在mouse_move事件中进行处理吧,如果要动态的画圆或矩形,那就比较麻烦些,网上有例子的,你百度一下.
      

  2.   

    用drawline,那第一个坐标点和第二个作标点怎么定义?
      

  3.   

    设个变量记录历史点的坐标。
    然后每次画,都把新点和历史点连接起来。
    注:第一次画,画点,第N次(N>1)画,画线。
      

  4.   

    这个画图,你不应该单纯的打点, 正确的算法是记录前一点的位置,在mouse_move事件中调用drawLine(prePoint, curPoint)
      

  5.   

    最后的代码,我放出来给有问题的人参考一下
    static int i=0;
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
    if(newbool==true)
    {
    myGraphics=this.CreateGraphics();
    myPen=new Pen(Color.Pink,2);

    if(i==0)
    {
    newpo[0].X=e.X;
    newpo[0].Y=e.Y;
    myGraphics.DrawEllipse(myPen,newpo[0].X,newpo[0].Y,2,2);
    i++;
    }
    else if(i>0&&i<500)
    {

    newpo[i].X=e.X;
    newpo[i].Y=e.Y;
    myGraphics.DrawLine(myPen,newpo[i-1],newpo[i]);
    i++;
    }
    else if(i==500)
    {
    i=0;
    newpo[0].X=e.X;
    newpo[0].Y=e.Y;
    myGraphics.DrawLine(myPen,newpo[499],newpo[0]);

    i++;
    }


    } }