我试过这个代码,但当我在面板内拖动和移动标签时是正常的,但当拖动到面板的边缘时,它会消失,我希望它停止在面板边界上,有办法吗?
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);
更有用。