C# Перетаскивание формы за любой элемент. ( FormBorderStyle: None )
1,00
р.
р.
Здравствуйте, довольно давно использую несколько методов, приведу код ниже. Возможно есть более гуманное решение этой задачи, поделитесь кодом. [DllImport("user32", CharSet = CharSet.Auto)] internal extern static bool PostMessage(IntPtr hWnd, uint Msg, uint WParam, uint LParam) [DllImport("user32", CharSet = CharSet.Auto)] internal extern static bool ReleaseCapture() const uint WM_SYSCOMMAND = 0x0112 const uint DOMOVE = 0xF012 const uint DOSIZE = 0xF008 А в событие MouseDown элемента управления вставляем сл. код. ReleaseCapture() PostMessage(this.Handle, WM_SYSCOMMAND, DOMOVE, 0) Данный вариант работает отлично, без зависаний, и мерцаний, возможно есть лучше решение?
Ответ private void Form1_MouseDown(object sender, MouseEventArgs e) { base.Capture = false Message m = Message.Create(base.Handle, 0xa1, new IntPtr(2), IntPtr.Zero) this.WndProc(ref m) }