1
내 양식 내에서 특정 패널을 드래그 가능/이동 가능하게 만들고 싶습니다. 통합되었습니다 :C# 양식 내에서 패널 이동
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
다른 답변은 여기에서 찾을 수 있습니다. 다음과 함께 :
void pnlSettings_MouseMove(object sender, MouseEventArgs e)
{
Drag_Form(Handle, e);
}
public static void Drag_Form(IntPtr Handle, MouseEventArgs e){
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
그러면 폼 (pnlSettings) 대신 폼 전체가 움직이는 것 같습니다. 패널을 혼자 움직이는 방법을 알아낼 수 없습니다.
그렇다면 pnlSettings (내 Panel의 이름)을 이동하려면 Panel 내부의 모든 컨트롤에 해당 패널과 함께 이동해야한다고 구체적으로 말해야합니까? 나중에 편집 : 신경 쓰지 마세요. 대답은 '아니오'입니다. 당신 말이 맞았습니다. 나는 단지 보내야 만했습니다 : Drag_Form (pnlSettings.Handle, e); – Filip