Winforms 当用户拖动面板、标签等时,如何移动窗体?

Winforms 当用户拖动面板、标签等时,如何移动窗体?,winforms,visual-c++,move,Winforms,Visual C++,Move,当用户拖动面板、标签或任何我想要的项目时,我希望移动整个表单。 如何在VisualC++中执行此操作? 我知道在VB中可以这样做,但我在VisualC++中工作。 有什么帮助吗?我不知道是否还有其他替代方法,但您可以为WM_MOUSEDOWN创建自己的处理程序(记不清了)。然后,您所要做的就是计算单击位置和控制器之间的差异 另外,为了让它移动,您需要处理WM_MOUSEMOVE或其他东西,用指针移动表单 您可以通过简单地使用一个布尔值来告诉mousemove它是否应该对鼠标移动做出反应来实现这一

当用户拖动面板、标签或任何我想要的项目时,我希望移动整个表单。 如何在VisualC++中执行此操作? 我知道在VB中可以这样做,但我在VisualC++中工作。
有什么帮助吗?

我不知道是否还有其他替代方法,但您可以为WM_MOUSEDOWN创建自己的处理程序(记不清了)。然后,您所要做的就是计算单击位置和控制器之间的差异

另外,为了让它移动,您需要处理WM_MOUSEMOVE或其他东西,用指针移动表单

您可以通过简单地使用一个布尔值来告诉mousemove它是否应该对鼠标移动做出反应来实现这一点

  • 选择主窗体
  • 属性窗口选择事件并添加鼠标移动事件
  • 守则:

    public int X_cood;
    bool Mouse_Cord_Stored = false;
    int MainForm_Mouse_X_Coordinates;
    int MainForm_Mouse_Y_Coordinates;
    Point p = new Point(ActiveForm.Location.X, ActiveForm.Location.Y);
    
    private void MainForm_MouseMove(object sender, MouseEventArgs e)
    {
        switch (e.Button)
        {
            case (MouseButtons.Left)://To Let user move the Form1 when Left mouse button is pressed
                {
                    switch (Mouse_Cord_Stored)
                    {
                        case false:
                            {
                                //If Mouse Coordinates are not stored, then store them.
                                MainForm_Mouse_X_Coordinates = e.X;
                                MainForm_Mouse_Y_Coordinates= e.Y;
                                Mouse_Cord_Stored = true;
                                break;
                            }
                        case true:
                            {
                                //Move the Form using ActiveForm.Location if mouse coordinates are stored
                                Form1.ActiveForm.Location = new Point(Form1.ActiveForm.Location.X + e.X - MainForm_Mouse_X_Coordinates
                                                                            , Form1.ActiveForm.Location.Y + e.Y - MainForm_Mouse_Y_Coordinates);
                                break;
                            }
                    }
                    break;
                }
    
            default:
                {
                    switch (Mouse_Cord_Stored)
                    {
                        case true:
                            {
                                Mouse_Cord_Stored = false;
                                break;
                            }
                    }
                    break;
                }
        }