Вы можете достичь своей цели даже без SendMessage, используя класс System.Windows.Forms.Message
. Если вы сделали перетаскивание, я думаю, вы знакомы с сообщением WM_NCLBUTTONDOWN
. Отправьте его родителю из события MouseDown вашего элемента управления.
Вот пример для перемещения формы, нажав на элемент управления label1. Обратите внимание на первую строку, где отправитель используется для освобождения захвата от элемента управления, по которому щелкнули. Таким образом, вы можете установить этот обработчик для всех элементов управления, предназначенных для перемещения вашей формы.
Это полный код для перемещения формы. Больше ничего не нужно.
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
private void label1_MouseDown(object sender, MouseEventArgs e)
{
(sender as Control).Capture = false;
Message msg = Message.Create(Handle, WM_NCLBUTTONDOWN, (IntPtr)HT_CAPTION, IntPtr.Zero);
base.WndProc(ref msg);
}
Надеюсь, это поможет.