private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { // 记录鼠标在控件中的位置 moveX = e.X; moveY = e.Y; pictureBox1.MouseMove += new MouseEventHandler(pictureBox1_MouseMove); } } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { Point p = Cursor.Position; p.Offset(-Left, -Top); // 减去窗体到屏幕的距离 p.Offset(-moveX, -moveY); // 减去控件到窗体顶部的距离 pictureBox1.Location = p; } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { pictureBox1.MouseMove -= pictureBox1_MouseMove; }