1

フォーム内の特定のパネルをドラッグ可能/移動可能にしたいと考えています。私は統合しました:

    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);
        }
    }

そして、Panel(pnlSettings) だけでなく、フォーム全体が移動するように見えます。パネルだけを動かす方法がわかりません。

4

1 に答える 1

0

Handleフォームのハンドルです。

.Handle移動するコントロールのを渡す必要があります。

于 2016-10-31T16:44:06.207 に答える