>>942
ごめん
>>948>>949は参考程度にしておいてくれ(不等号の向き間違ってたりする、恥ずかしいw

windowsの場合はMouseイベントは純粋に移動だけ行って
pictureboxのLocationChangedイベント内で下記処理を行ったら思うように動いた

void picturebox2_LocationChanged(object sender, EventArgs e)
{
int wPic2Left = picturebox2.Left;
int wPic2Top = picturebox2.Top;
//wPic2Left += e.X - mousePoint.X;
//wPic2Top += e.Y - mousePoint.Y;
//左上処理
if (wPic2Left < 0) wPic2Left = 0;
if (wPic2Top < 0) wPic2Top = 0;
//右下の処理
int AW = picturebox2.Parent.ClientRectangle.Width - picturebox2.Width;//もしかしたら幅なので座標系として見る場合は-1いるかも
int AH = picturebox2.Parent.ClientRectangle.Height - picturebox2.Height;//もしかしたら高さなので座標系として見る場合は-1いるかも
if (AW < picturebox2.Left) wPic2Left = AW;
if (AH < picturebox2.Top) wPic2Top = AH;
picturebox2.Location = new Point(wPic2Left, wPic2Top);
}