Ограничить границы перемещения формы. - 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5