Как передать событие мыши нижележащему элементу? - PullRequest
0 голосов
/ 30 июня 2019

У меня есть подвижная форма без полей (тащится, щелкая и удерживая кнопку мыши). Перетаскивание работает только тогда, когда я нажимаю на пустые места формы, например поле / область заполнения. Как отобразить элемент управления (скажем, метку), чтобы он не захватывал события мыши, а вместо этого передавал его базовому элементу формы? Другими словами, я хочу нажать на этот элемент метки и перетащить форму. Самая близкая вещь, о которой я могу думать, - pointer-events: none в CSS.

Вот код powershell, который я использую, чтобы сделать мою форму подвижной:

function makeFormDraggable {
  param($form)
  Add-Type '
    using System;
    using System.ComponentModel;
    using System.Runtime.InteropServices;

    public class User32{
        //const and dll functions for moving form
        public const int WM_NCLBUTTONDOWN = 0xA1;
        public const int HT_CAPTION = 0x2;

        [DllImport("user32.dll")]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

        [DllImport("user32.dll")]
        public static extern bool ReleaseCapture();
    }
  '
  $onMouseDown = [System.Windows.Forms.MouseEventHandler] {
  #Event Argument: $_ = [System.Windows.Forms.MouseEventArgs]
    [user32]::ReleaseCapture()
    [user32]::SendMessage($form.Handle, [user32]::WM_NCLBUTTONDOWN, [user32]::HT_CAPTION, 0);
  }
  $form.Add_MouseDown($onMouseDown)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...