Событие MouseMove продолжает срабатывать, даже если мышь все еще - PullRequest
0 голосов
/ 28 мая 2019

Я хочу знать, как именно событие MouseMove работает в форме окна c #.

Я делаю приложение для формы Windows и пытался создать функцию для перемещения картинки и списка меток, окружающих его событием MouseMove. Он успешно переместил все, как я ожидал, но когда я попытался переместить только метки, по какой-то причине метки продолжали двигаться, даже если мышь остановлена.

Событие MouseMove назначено для Picturebox.

private void pictureBox_MouseMove(object sender, MouseEventArgs e)
        {
            PictureBox pbx = sender as PictureBox;
            if (down)
            {

//labels keeps moving without these two lines of codes below.
//They are the codes that moves PictureBox
                pbx.Left = e.X + pbx.Left - MouseLock.X;
                pbx.Top = e.Y + pbx.Top - MouseLock.Y;

                foreach(Label lbl in DisplayLabels)
                {
                    lbl.Left = e.X + lbl.Left - MouseLock.X;
                    lbl.Top = e.Y + lbl.Top - MouseLock.Y;
                }

                frm.label1.Text = e.X.ToString();
                frm.label2.Text = DisplayLabels[0].Left.ToString();
                frm.label3.Text = MouseLock.X.ToString();
                frm.label4.Text = sand.ToString();
                sand++;
            }
        }

Мне не нужно исправлять эту проблему, поскольку я получил то, что хотел, но я хочу знать, почему это происходит.

...