Домой C# Блокировка перетаскивания формы за границы рабочего пространства: Справочник по C#

Блокировка перетаскивания формы за границы рабочего пространства: Справочник по C#

889
0



      В данной статье приведен пример реализации блокировки перетаскивания формы вашего проекта за границы рабочего пространства.
      Создайте проект «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;

Блокировка перетаскивания формы за границы рабочего пространства: Справочник по C#

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Очищаем кэш Internet Explorer: Справочник по C#

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь