我想知道MouseMove事件在c#Windows窗体中的工作原理。
我正在制作Windows窗体应用程序,试图通过MouseMove事件使该功能移动图片框和围绕它的标签列表。它成功地移动了所有内容,但是当我尝试仅移动标签时,由于某些原因,即使停下了鼠标,标签也保持移动。
将MouseMove事件分配给图片框。
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++;
}
}
自从我得到了想要的东西之后,我不需要解决此问题,但是我想知道它为什么会发生。