实现画橡皮筋线条
前提:不用api,我现在用DrawReversibleLine,但是这个是在屏幕画的,会超越我的form,这个问题怎么控制?或者说有没有别的解决方案?

解决方案 »

  1.   

    DrawReversibleLine 你可以锁定你的鼠标不离开你的form来做.
      

  2.   

    private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                System.Windows.Forms.Cursor.Clip = new Rectangle(this.Location, this.Size);
            }//限定鼠标的活动范围仅在窗口内
      

  3.   

    system.drawing 命名空间
    graphics 对象看过吗?
      

  4.   

    受不了你了,在图上画就锁定在图片上的范围呗,图片的MOUSEMOVE呗.吃了苹果就不会吃梨?
      

  5.   

    呵呵呵system.drawing 命名空间
    graphics
      

  6.   

    这个,做过类似的画板工具,橡皮线主要是在拖的过程,但是这样可能画到面板外面,记得我原来也烦了很久,后面想到一个方法,就是获得窗体的的绝对坐标(屏幕坐标)+窗体大小做限制范围,利用MouseMove方法来判断,看鼠标是否超出范围,如果超出,立刻终止橡皮线的绘制.
    很久前做的了,找到原码再给你.
      

  7.   

    system.drawing 命名空间
    graphics 是那种选择框的效果????Pen pen = new Pen(Color.Black, 2);
    pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;gMain.DrawRectangle(pen, new Rectangle(posOld.X, posOld.Y,
              (posNew.X - posOld.X), (posNew.Y - posOld.Y)));
      

  8.   

    if (e.Button == MouseButtons.Left)
                {
                    posNew = new Point(e.X, e.Y);
                    OnPaint(new PaintEventArgs(this.CreateGraphics(), this.Bounds));
                }
                else
                {
                    base.OnMouseMove(e);
                    if (CheckPointInRect(new Point(e.X, e.Y)))
                    {
                        this.Cursor = Cursors.SizeAll;
                    }
                    else
                    {
                        this.Cursor = Cursors.Default;
                    }
                }
      

  9.   

    to:wawaku(一堆裤衩!) 怎么这样说话,何必呢~~~~
      

  10.   

    to:ice_wei() 谢谢你,希望能够找得到.