在做一个小游戏,想实现一个如题功能
把鼠标选中的图片拖到一个容器中,希望图片能跟随鼠标移动
希望能看到大侠的C#代码例子,谢谢
有点急,解决问题给分!~

解决方案 »

  1.   

    处理MouseDown、MouseMove、MouseUp三个事件,记录鼠标坐标前后变化,把变化同时体现在要移动的图片上。
      

  2.   

    谢谢,我也是这样写的代码
    图片是移动了
    但是我看不到图片跟着鼠标移动是怎么回事呢        Point p = new Point();
            private void pictureBox_MouseDown(object sender, MouseEventArgs e)
            {
                p.X = Cursor.Position.X;
                p.Y = Cursor.Position.Y;
            }        private void pictureBox_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                    Cursor = Cursors.SizeAll;
                else
                    Cursor = Cursors.Default;
            }        private void pictureBox_MouseUp(object sender, MouseEventArgs e)
            {
                chosePlaneDown.Left = chosePlaneDown.Left + (Cursor.Position.X - p.X);
                chosePlaneDown.Top = chosePlaneDown.Top + (Cursor.Position.Y - p.Y);
            }
      

  3.   

    adai 您好你说的同时体现在移动的图片上
    能说的详细点么,或者在我上面的代码上怎么体现?
      

  4.   


                chosePlaneDown.Left = chosePlaneDown.Left + (Cursor.Position.X - p.X);
                chosePlaneDown.Top = chosePlaneDown.Top + (Cursor.Position.Y - p.Y); 添加到mousemove的函数里面试试~
      

  5.   

    把MouseUp里的那一段放到Move里去。
      

  6.   

    动了
    但是幅度好大啊
    稍微动了一下,就飞没了。呵呵why?
      

  7.   

    加点限制试试 
    if( ((Cursor.Position.X - p.X))<10 && ((Cursor.Position.Y - p.Y)<10) )
    {
     chosePlaneDown.Left = chosePlaneDown.Left + (Cursor.Position.X - p.X);
     chosePlaneDown.Top = chosePlaneDown.Top + (Cursor.Position.Y - p.Y); 
    }
      

  8.   

    Point p = new Point();
    Point cp = new Point();//记录要移动的控件的初始位置private void pictureBox_MouseDown(object sender, MouseEventArgs e) 

        p.X = Cursor.Position.X;
        p.Y = Cursor.Position.Y;
        cp.X = pictureBox.Location.X;
        cp.Y = pictureBox.Location.Y;
    } private void pictureBox_MouseMove(object sender, MouseEventArgs e) 

        if (e.Button == MouseButtons.Left){
            pictureBox.Location = new Point(Cursor.Position.X - (p.X - cp.X), Cursor.Position.Y - (p.Y - cp.Y)); 
        }
    }//Up事件里怎么写自己看着办,不写也行