C#中实现拖动无边框窗体Form

简介: 拖动无边框窗体Form至桌面任何位置 首先建一个Windows应用程序 将Form1的 FormBorderStyle属性设置为Noe   创建控件panel1放在标题栏位置   代码         Point mouseOff;//鼠标移动位置变量         boo...
拖动无边框窗体Form至桌面任何位置

首先建一个Windows应用程序

将Form1的 FormBorderStyle属性设置为Noe

 

创建控件panel1放在标题栏位置

 

img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
        Point mouseOff; // 鼠标移动位置变量
          bool  leftFlag; // 标签是否为左键

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

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

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

 

 

就可以实现了
目录
相关文章
|
6月前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
|
关系型数据库 MySQL C#
C# winform 一个窗体需要调用自定义用户控件的控件名称
给用户控件ucQRCode增加属性: //二维码图片 private PictureBox _pictureBoxFSHLQrCode; public PictureBox PictureBoxFSHLQrCode {   get { return _pictureBoxFSHLQrCode; }   set { this.pictureBoxFSHLQrCode = value; } } 在Form1窗体直接调用即可: ucQRCode uQRCode=new ucQRCode(); ucQRCode.PictureBoxFSHLQrCode.属性= 要复制或传给用户控件上的控件的值
70 0
|
27天前
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
60 0
|
4月前
|
开发框架 数据可视化 C#
|
6月前
|
C#
C#如何实现窗体最小化到托盘
C#如何实现窗体最小化到托盘
62 0
|
6月前
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
138 0
|
6月前
|
C# Windows
C#安装“Windows 窗体应用(.NET Framework)”
C#安装“Windows 窗体应用(.NET Framework)”
161 0
|
11月前
|
C# 数据安全/隐私保护
C# 窗体之间参数互相传递的两种方法与使用
C# 窗体之间参数互相传递的两种方法与使用
|
11月前
|
C# Kotlin
C#is、as关键字及获取当前活动窗体的实例
这篇日志记录一下C#中is关键字及as关键字的用法。 Is :判断检查对象是否与给定类型兼容 As :将对象转换为指定类型(强转),就跟(int )这样的用法是一样的。 获取当前窗体的活动子窗体。
56 0
|
C# 数据安全/隐私保护
ApeForms | C# WinForm窗体控件平滑减速运动
在桌面软件开发中,有时会需要控制窗体或控件移动以实现某些界面效果,比如幻灯片换页、侧面的展开栏等。 通常情况下我们会使用Timer以每隔一段时间修改一下坐标位置的方式来实现目标对象的位移效果,但通过这个方式实现的动效存在几个问题: 匀速运动效果生硬; 运动过程中不便灵活改变运动状态(如侧栏展开一半时令其收起); 动效多时需要创建多个Timer对象,不易管理且占用资源; ApeForms中为控件和窗体提供了平滑运动的扩展方法,很好的解决了这些问题。不仅是坐标的平滑运动,还有控件\窗体尺寸的平滑变化、透明度的平滑变化。允许在变化的中途随时更改目标坐标\尺寸\透明度,且使用共享的Timer
11379 1
ApeForms | C# WinForm窗体控件平滑减速运动