Go to my github

C# WinForm 技巧三: 无边框窗体移动

一、版权

       文章:http://www.cnblogs.com/EasyData/archive/2008/05/05/1183696.html

       作者:mn-soft.com 

二、摘要

     拖动无边框窗体Form至桌面任何位置

    首先建一个Windows应用程序
    将Form1的 FormBorderStyle属性设置为Noe
三、本文大纲

       a、版权

       b、摘要

       c、本文大纲

       d、内容

四、内容

直接贴代码:

复制代码
        
        Point mouseOff;//鼠标移动位置变量

        bool leftFlag;//标签是否为左键

        privatevoid Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                mouseOff = new Point(-e.X, -e.Y); //得到变量的值
                leftFlag = true;                  //点击左键按下时标注为true;
            }
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                Point mouseSet = Control.MousePosition;
                mouseSet.Offset(mouseOff.X, mouseOff.Y);  //设置移动后的位置
                Location = mouseSet;
            }
        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                leftFlag = false;//释放鼠标后标注为false;
            }
        }

复制代码

 好了,这样就可以达到,拖动窗体至桌面任何位置。

posted @   峡谷少爷  阅读(8045)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2011-03-07 读书笔记:人性的弱点读后感
点击右上角即可分享
微信分享提示