C# 移动窗口 适用于有标题栏和无标题栏窗体 超级简单版

适用于有标题栏和无标题栏窗体,适用于窗体内控件,当然 Form 也不例外,只要能添加 MouseDown、MouseMove 事件,无需添加 MouseUp 事件,也无需考虑 Form 是否有标题栏。

本方法采用 Control.MousePosition,而没有采用 MouseEventArgs e 获取数据,是因为这样无需考虑窗体有无标题栏和边框的大小,也无需考虑是窗体引发事件,还是窗体内控件引发事件。

 

 

代码

// 获取窗体的屏幕坐标和鼠标光标的位置(屏幕坐标) 
private void MainForm_MouseDown(object sender, MouseEventArgs e)

     mousePoint = Control.MousePosition; 
     formPoint = this.Location;
 }
 
  // 鼠标光标的屏幕坐标
 Point mousePoint;
 
 // 窗体的屏幕坐标
 Point formPoint;

 // 响应鼠标移动,并移动窗口
 private void MainForm_MouseMove(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
        Point mousePos = Control.MousePosition;
        this.Location = new Point(mousePos.X - mousePoint.X + formPoint.X, mousePos.Y - mousePoint.Y + formPoint.Y);
     }
 }
 

 

 

时间: 2024-07-28 20:18:16

C# 移动窗口 适用于有标题栏和无标题栏窗体 超级简单版的相关文章

界面demo-画一个无标题栏无边框的窗口

问题描述 画一个无标题栏无边框的窗口 窗口是用gdi+画的 打算是想实现一种想安全卫士之类的窗口 没有默认的标题栏和边框的现在的情况是 按钮被挡住了 画不出来? 代码: // WinCreate.cpp : Defines the entry point for the application. // #include #include //初始化一下com口 #ifndef ULONG_PTR#define ULONG_PTR unsigned long*#include ""Gdi

请问如何利用Message.Create方法移动无标题栏窗口

问题描述 请问如何利用Message.Create方法移动无标题栏窗口 解决方案 解决方案二:路过帮顶=============11月6日,论坛升级公告,积分已经做了调整!http://topic.csdn.net/u/20081107/11/b27dc75f-14b1-4594-9de3-5b18d9e36a11.html此次调整增加了两个新的可用分获取渠道:1:帖子被推荐(加精)后,帖主可以获得88分的可用分奖励:2:帖子结帖后会返还帖主50%的悬赏分,无满意结帖不返还分数:3:接下来会不断

delphi程序全屏显示无标题栏覆盖整个屏幕

delphi 简单实现程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,具体代码如下,感兴趣的朋友可以参考下哈   delphi 程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,所以记下 复制代码 代码如下: procedure TMainFrm.FormCreate(Sender: TObject); begin with MainFrm do begin { Position form } Top := 0 ; Left := 0 ; { Go full s

图片-求助:请问无标题栏有边框的窗体怎么多出一部分白色的出来了呢?

问题描述 求助:请问无标题栏有边框的窗体怎么多出一部分白色的出来了呢? 我想做一个去掉标题栏但不去掉边框的窗体(不是FormBorderStyle=None),但在Win 10里面标题栏却出现了一部分白色的背景,请问有没有高手知道是怎么回事?

Android中实现全屏、无标题栏的两种办法(另附Android系统自带样式的解释)

原文:Android中实现全屏.无标题栏的两种办法(另附Android系统自带样式的解释) 在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏.要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置. 1.在xml文件中进行配置 在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可. 实现全屏效果: android:theme="@android:style/Theme.NoTitleB

mfc-请求MFC通过自会窗口把工具栏如何添加到标题栏中,看清楚了,是标题栏!!!

问题描述 请求MFC通过自会窗口把工具栏如何添加到标题栏中,看清楚了,是标题栏!!! VISUAC++ 6.0中文版怎么样自会添加工具栏到窗口顶部的标题栏,这方面的思路是什么,谢谢!!! 解决方案 https://msdn.microsoft.com/en-us/library/cc309024.aspx

Android实现无标题栏全屏的方法_Android

Android中实现全屏.无标题栏的两种办法,另附Android系统自带样式的解释 实现全屏无标题栏: 1.在xml文件中进行配置 AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可. 实现全屏效果: android:theme="@android:style/Theme.NoTitleBar.Fullscreen"   实现无标题栏(但有系统自带的任务栏): android:theme="@andr

Android 全屏无标题栏的三种实现方法_Android

一.通过Java代码 在setContentView之前执行: requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏 二.调用Android自带的Theme 直接在AndroidManifest.xml中需要全屏显

delphi程序全屏显示无标题栏覆盖整个屏幕(适合屏保)_Delphi

delphi 程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,所以记下 复制代码 代码如下: procedure TMainFrm.FormCreate(Sender: TObject); begin with MainFrm do begin { Position form } Top := 0 ; Left := 0 ; { Go full screen} BorderStyle := bsNone ; WindowState := wsmaximized; ClientW