Перемещение формы без заголовка в C#

Когда пользователь нажимает мышь на зеленую метку lblMoveForm Label в верхнем правом углу формы, выполняется следующий обработчик событий.

// На левой кнопке позвольте пользователю перетащить форму.
private void lblMoveForm_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        // Отпустите захват мыши, запущенный мышью.
        lblMoveForm.Capture = false;

        // Создаем и отправляем сообщение WM_NCLBUTTONDOWN.
        const int WM_NCLBUTTONDOWN = 0x00A1;
        const int HTCAPTION = 2;
        Message msg =
            Message.Create(this.Handle, WM_NCLBUTTONDOWN,
                new IntPtr(HTCAPTION), IntPtr.Zero);
        this.DefWndProc(ref msg);
    }
}

Код устанавливает свойство Capture элемента управления false, чтобы освободить захват мыши, который был запущен нажатием кнопки мыши.

Источник: http://csharphelper.com/blog/2015/07/move-a-form-without-a-title-bar-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector