2016-10-31 105 views
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)。我似乎無法弄清楚如何讓專家組獨自行動。

回答

0

Handle是形式的手柄。

您需要將您要移動的控制.Handle

+0

所以,如果我想移動pnlSettings(我的小組的名稱),這意味着我要明確告訴面板內的所有控件與它移動? 後來編輯:沒關係。答案是否定的。你說得對,我只需要發送:Drag_Form(pnlSettings.Handle,e); – Filip