PDA

Показать полную графическую версию : [решено] Запретить перемещение формы по одной из координат


corbis
28-04-2015, 16:39
Нужна идея реализации, не соображу в каком направлении копать.

Grabber2006
28-04-2015, 17:21
Идея реализации:

const formpositionx; {расположение по горизонтали - константа}

form.x changed event; {событие изменения оси x}

event handler (var x) {обработчик события}
if x<>formpositionx then x := formpositionx;

PS: Язык выдуманный (больше похож на Паскаль)

corbis
28-04-2015, 22:41
Пока что получилось вот так:
private void Form_MouseDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
if (!(Form.Top == 0))
Form.Top = 0;
}

Это Visual Studio 2013. WPF C#. Знакомство со студией непродолжительное совсем.
При данном варианте таскать форму можно в любой место, но при отпускании мышки форма отпрыгивает к краю экрана.
А вот какое событие обработать, чтобы координата Y вообще не менялась, не сообразил.
Но всё равно, спасибо.

Grabber2006
29-04-2015, 11:44
У формы есть LocationChanged, если написать обработчик:
private void handelr1(object sender, EventArgs e)
{
if (!(this.Top == 0))
this.Top = 0;
}

То она "приклеивается" к верхнему краю экрана. VS2012

corbis
01-05-2015, 00:26
Я, кстати, пробовал обработать это событие. Почему-то не сработало, вот и стал спрашивать. Наверно, ошибка где-то была.




© OSzone.net 2001-2012