Добрый день. Подскажите как заставить форму перемещаться удалив у нее рамку? Тоесть у меня у MainForm выключен ControlBox и BorderStyle - None И форма не двигается теперь.. Как вернуть возможность перемещать ее? Спасибо заранее
protected override void WndProc(ref Message m)
{
if (m.Msg==0x84)
{
base.WndProc(ref m);
if ((int)m.Result == 0x1)
m.Result = (IntPtr)0x2;
return;
}
base.WndProc(ref m);
}
Добавьте этот метод.
Код взят с англоязычного SO https://stackoverflow.com/questions/1592876/make-a-borderless-form-movable.
Определите onMouseDown
слушателя на форму, и вставьте следующий код.
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[System.Runtime.InteropServices.DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[System.Runtime.InteropServices.DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
В результате получается по сути делает то же самое, что и захват строки заголовка окна у обычной winform
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как можно сделать так, чтобы форма запускалась и работала только при запущенном процессе?
Как определить что программа запущена в первый раз? Без создания папок или файлов настроекЭти способы я знаю
Как реализовать копирование нужных колонок из таблицы? Например при клике на кнопку в буфер должны упасть все значения, которые были в первом...