窗体内控件的移动及窗体随控件移动、WIN7磨砂窗口

这篇博客探讨了在运行时如何实现窗体内控件的移动以及窗体跟随控件一起移动的效果。通过引入API函数,可以在控件的MouseDown事件中实现这一功能。同时,作者提出原本期望实现窗体标题栏行为(如拖动、缩放),但未找到满意解决方案,并邀请读者提供帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、本文主要讲述两种情况,即运行时窗体内控件的移动和窗体随控件一起移动:

大致做法如下:

引入两个API函数:

        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessage")]
        public static extern int SendMessage(int hWnd, int wMsg, int wParam, int lParam);

        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "ReleaseCapture")]
        public static extern int ReleaseCapture();

        public const int WM_SysCommand = 0x0112;
        public const int SC_MOVE = 0xF012;

然后在想要移动的控件的MouseDown事件内添加如下代码,这里以Panel的MouseDown为例:

        void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            ReleaseCapture();
            SendMessage(this.Handle.ToInt32(),WM_SysCommand,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值