Ограничить границы перемещения формы. - C#
Формулировка задачи:
Как ограничить границы перемещения формы на экране. Пробывал просто если левая позиция < то установить на нужное место, но смотрится не очень. Есть способы это сделать красиво?
пробовал на Move и LocationChanged.
получается что когда форму перетягиваешь, она моргает.
есть ещё какие-нибудь способы? или как от моргания избавиться)
Решение задачи: «Ограничить границы перемещения формы.»
textual
Листинг программы
//переменные класса
private bool isDragging = false;
private Point oldPos;
//в конструкторе
this.MouseDown += new MouseEventHandler(MyForm_MouseDown);
this.MouseMove += new MouseEventHandler(MyForm_MouseMove);
this.MouseUp += new MouseEventHandler(MyForm_MouseUp);
//методы
private void MyForm_MouseDown(object sender, MouseEventArgs e)
{
this.isDragging = true;
this.oldPos = new Point();
this.oldPos.X = e.X;
this.oldPos.Y = e.Y;
}
private void MyForm_MouseMove(object sender, MouseEventArgs e)
{
if(this.isDragging)
{
Point tmp = new Point(this.Location.X, this.Location.Y);
tmp.X += e.X - this.oldPos.X;
tmp.Y += e.Y - this.oldPos.Y;
this.Location = tmp;
}
}
private void MyForm_MouseUp(object sender, MouseEventArgs e)
{
this.isDragging = false;
}