У меня проблема с перемещением метки на панели. Когда я перемещаю эту метку, достигая верхней и левой (0.0), метка соответствует верхнему и левому. Чтобы провести половину экрана, ярлык превышает панель, как показано на рисунке.Управление перемещением во время выполнения
Мои коды:
public partial class frmStandard : Form
{
Point startposition;
}
public void MouseDown(object sender, MouseEventArgs e)
{
startposition = e.Location;
}
public void MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
((Label)sender).Left = Math.Max(0, e.X + ((Label)sender).Left - startposition.X);
((Label)sender).Top = Math.Max(0, e.Y + ((Label)sender).Top - startposition.Y);
}
}
мне нужна метка не превышает панель size.What должны быть добавлены в кодах?
Возможно, это проблема Z-порядка, этикетка исчезает под этой панелью инструментов. Простым обходным решением является * не * установка панели инструментов на панели. Код MouseMove также должен работать, как только Max() выполнит свою работу, тогда положение мыши не синхронизируется с положением метки. Избегайте проблем с PointToScreen. Пример кода [находится здесь] (http://stackoverflow.com/a/25591801/17034). –