В данной статье приведен пример реализации блокировки перетаскивания формы вашего проекта за границы рабочего пространства.
Создайте проект «Windows Form» в «Microsoft Visual Studio». Сделайте клик правой клавишей мыши по любому свободному месту главной формы и выберете пункт «Свойства» в открывшемся контекстном меню. В окне свойств главной формы вашего проекта перейдите в раздел «События» и найдите событие «LocationChanged».
Выполните по нему дойной клик левой клавишей мыши. Вы перейдете в редактор кода с установкой курсора в автоматически созданном методе «Form1_LocationChanged», события «LocationChanged», выполняющегося при изменении значения свойства «Location». Вставьте в тело данного метода приведенный ниже листинг, запрета выхода границ формы за пределы экрана.
//Получаем размеры рабочего пространства (в точках) для текущего видеорежима основного монитора. Size size = new Size(); //Получаем размеры (в точках) для текущего видео //режима основного монитора. size.Height = SystemInformation.PrimaryMonitorSize.Height; size.Width = SystemInformation.PrimaryMonitorSize.Width; if (this.Location.X < 0) { this.Location = new Point(0, this.Location.Y); } if (this.Location.Y < 0) { this.Location = new Point(this.Location.X, 0); } if (this.Location.X + this.Size.Width > size.Width) { this.Location = new Point(size.Width - this.Size.Width, this.Location.Y); } if (this.Location.Y + this.Size.Height > size.Height) { this.Location = new Point(this.Location.X, size.Height - this.Size.Height); }Запустите проект, нажав на клавишу «F5», после компиляции проекта попробуйте выполнить перемещение формы за пределы границ монитора. При каждой попытке переместить форму за пределы будет выполняться данный код. В данном приеме есть одна особенность, форма не может выходить за пределы только основного монитора (монитора установленного по умолчанию). Для расширения области перетаскивания формы при работе с двумя мониторами воспользуйтесь приведенным ниже кодом получения рабочего пространства.
//Получаем высоту главного экрана и сумму ширины двух мониторов. size.Height = SystemInformation.PrimaryMonitorSize.Height; size.Width = Screen.AllScreens[0].WorkingArea.Width + Screen.AllScreens[1].WorkingArea.Width;Если вы хотите чтобы форма не могла заходить за панель задач, воспользуйтесь приведенным ниже кодом.
//Получаем границы области рабочего стола, за исключением панели задач, //закреплённых окон и закреплённых панелей инструментов. size.Height = Screen.PrimaryScreen.WorkingArea.Height; size.Width = Screen.PrimaryScreen.WorkingArea.Width;
Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!