C#运行时鼠标移动控件 - 调用Windows API(ReleaseCapture)

Posted MoChiu程序人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#运行时鼠标移动控件 - 调用Windows API(ReleaseCapture)相关的知识,希望对你有一定的参考价值。

        [System.Runtime.InteropServices.DllImport("user32.dll")]
        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        public static extern bool ReleaseCapture();

        private void MoveControl(Control sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left && e.Clicks == 1)
            {
                ReleaseCapture();
                SendMessage(sender.Handle, 161, 2, 0);
                SendMessage(sender.Handle, 0x0202, 0, 0);
            }
            else
            {
                //添加双击或右击代码……
            }
        }

        private void button3_MouseDown(object sender, MouseEventArgs e)
        {
            MoveControl(sender as Control, e);
        }

 

以上是关于C#运行时鼠标移动控件 - 调用Windows API(ReleaseCapture)的主要内容,如果未能解决你的问题,请参考以下文章

C#怎么才能实现拖动控件时窗体也跟着移动

C#怎样判断鼠标移动到控件上了

C#的winform. 有自动隐藏的控件吗?鼠标移过去再展开的

在 C# 中通过鼠标拖动来移动控件

C#自定义控件的鼠标事件问题

Windows 窗体应用程序 C# - 在调试模式下运行后选项卡控件项移动位置