如何使标签在面板边界内移动



我试过这个代码,但当我在面板内拖动和移动标签时是正常的,但当拖动到面板的边缘时,它会消失,我希望它停止在面板边界上,有办法吗?

private void lbl29_MouseDown(object sender, MouseEventArgs e) 
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
MouseDownLocation = e.Location;
}
panel1.Invalidate();
}
private void lbl29_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
lbl29.Left = e.X + lbl29.Left - MouseDownLocation.X;
lbl29.Top = e.Y + lbl29.Top - MouseDownLocation.Y;
}
}

您可以尝试这些: Controls.SetChildIndex(lbl29, 0); Controls.SetChildIndex(panel1, 1); lbl29.BringToFront(); panel1.SendToBack(); Controls.SetChildIndex(lbl29, 0);Controls.SetChildIndex(panel1, 1);更有用。

最新更新