最近老师要求用C#做一个小画板,画板上面的绘图怎么进行移动,我是只菜鸟,求帮谢谢

解决方案 »

  1.   

    画板是在picturebox里面画的,现在没有一点思绪,就是想本来就要触发他的mouse_down 画好的图片怎么点到
      

  2.   


    Point pt = Point.Empty;
    bool IsMouseDown = false;private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            pt = e.Location;
            IsMouseDown = true;
        }
    }private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left) IsMouseDown = false;
    }private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (IsMouseDown)
        {
            using (Graphics g =
                Graphics.FromHwnd(this.pictureBox1.Handle))
            {
                using (Pen pen = new Pen(Color.Red, 5))
                {
                    g.DrawLine(pen, pt, e.Location);
                    pt = e.Location;
                }
            }
        }
    }
      

  3.   

    http://topic.csdn.net/u/20100723/16/3712b3a6-4cad-460b-bd82-64c86eed9595.html
      

  4.   


    if (this.pictureBox1.Image == null) return;
    // 从 pictureBox.Image 创建 Graphics 对象
    using (Graphics g = Graphics.FromImage(this.pictureBox1.Image))
    {
       // 前面基本一样,最后加一局
       g.Save();
    }
      

  5.   

    不好意思,没看仔细,加个移动控件的代码
    // 直接在 Form_Load 事件中调用
    // this.CSDNSamples_MoveControl();
    // 就可以看见效果了
    private void CSDNSamples_MoveControl()
    {
    PictureBox box = new PictureBox();
    box.BackColor = Color.DarkRed;
    box.SetBounds(0, 0, 100, 100); bool isMouseDown = false;
    Point pt = Point.Empty; box.MouseEnter += (sender, e) => { box.Cursor = Cursors.Hand; };
    box.MouseLeave += (sender, e) => { box.Cursor = Cursors.Default; }; box.MouseDown += (sender, e) =>
    {
    if (e.Button == MouseButtons.Left)
    {
    isMouseDown = true;
    pt = e.Location;
    }
    }; box.MouseUp += (sender, e) =>
    {
    if (e.Button == MouseButtons.Left)
    {
    isMouseDown = false;
    }
    }; box.MouseMove += (obj, e) =>
    {
    if (isMouseDown)
    {
    Point pos = box.Location;
    pos.Offset(e.Location);
    box.Location = Point.Subtract(pos, new Size(pt));
    }
    };
    this.Controls.Add(box);
    this.AutoScroll = true; box.BringToFront();
    box.Show();
    }
      

  6.   

    哈哈哈 这个功能我已经找了很久了,但是还是不知道如何实现,后来做了一个只能移动某段线条的,移动整个图形的真的不知道怎么实现,下载了C#的这个DrawTools看了一下,差点没晕掉....