c # Перетаскивание PictureBox внутри панели - PullRequest
0 голосов
/ 31 октября 2018

У меня есть перетащить PictureBox1 с этим кодом:

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            x = e.X;
            y = e.Y;
        }
    }

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {

        if (e.Button == MouseButtons.Left)
        {
            if (pictureBox1.Left + pictureBox1.Width> panel1.Width)
                pictureBox1.Left += (e.X - x);
        }
    }

Но я не могу связать ограничения, Я просто хочу переместить изображение внутри панели, например так: Пример

Есть идеи? Спасибо

1 Ответ

0 голосов
/ 31 октября 2018

Попробуйте это:

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        int left = 0;
        if (pictureBox1.Left >= 0 && pictureBox1.Right <= panel1.Width)
            left = pictureBox1.Left + (e.X - x);

        left = Math.Min(panel1.Width - pictureBox1.Width , left);
        left = Math.Max(0, left);
        pictureBox1.Left = left;
    }
}
...