C#中如何实现拖动PictureBox控件

在 Windows 窗体应用程序中显示图片时要使用图片控件 ( PictureBox ),图片的设置方式与背景图片的设置方式相似。

图片控件中常用的属性如下表所示。.

属性名 作用
Image 获取或设置图片控件中显示的图片
ImageLocation 获取或设置图片控件中显示图片的路径
SizeMode 获取或设置图片控件中图片显示的大小和位置,如果值为 Normal,则图片显不在控件的左上角;如果值为 Stretchimage,则图片在图片控件中被拉伸或收缩,适合图片的大小;如果值为AutoSize,则控件的大小适合图片的大小;如果值为 Centerimage,图片在图片控件中居中;如果值为 Zoom,则图片会自动缩放至符合图片控件的大小
 

思路是这样的.得有三个变量.
记录x坐标: int xPos;
记录y坐标: int yPos;
记录是否按下鼠标: bool MoveFlag;

//在picturebox的鼠标按下事件里,记录三个变量.
private void picBox_MouseDown(object sender, MouseEventArgs e)
{
    MoveFlag = true;//已经按下.
    xPos = e.X;//当前x坐标.
    yPos = e.Y;//当前y坐标.
}

//在picturebox的鼠标按下事件里.
private void picBox_MouseUp(object sender, MouseEventArgs e)
{
    MoveFlag = false;
}

//在picturebox鼠标移动
private void picBox_MouseMove(object sender, MouseEventArgs e)
{
    if (MoveFlag)
    {
        picBox.Left += Convert.ToInt16(e.X - xPos);//设置x坐标.
        picBox.Top += Convert.ToInt16(e.Y - yPos);//设置y坐标.
    }
}

这样就可以实现控件在容器里的移动。