private bool isMouseLeftKeyDown = false;
private Point mousePointToClient = new Point();//相对于本窗体鼠标位置
private Point mousePointToScreen = new Point();//相对于屏幕鼠标位置 private void Form_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Control ctrl = sender as Control;
isMouseLeftKeyDown = true;
this.mousePointToClient = new Point(e.X + ctrl.Location.X, e.Y + ctrl.Location.Y);
this.mousePointToScreen = Control.MousePosition;
}
} private void Form_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && isMouseLeftKeyDown)
{
this.Top = Control.MousePosition.Y - mousePointToClient.Y;
this.Left = Control.MousePosition.X - mousePointToClient.X;
}
} private void Form_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isMouseLeftKeyDown = false;
FormClick();
}
} private void FormClick()
{
//鼠标位置没有发成偏移,视为点击事件
if (mousePointToScreen != Control.MousePosition)
return; //todo
}

  

C#winform拖动无边框窗体的更多相关文章

  1. C# WinForm 拖动无边框窗体 改变无边框窗体尺寸

    经常遇到这种情况.窗体的边框去掉了.然后种种问题就出来了:不能拖动.不能改变窗体大小.不能......当然.肯定有解决方案滴*^_^*今天的目标就是:可以直接拖动没有边框的窗体.可以直接拉拽窗体改变其 ...

  2. winform拖动无边框窗体

    这个无边框拖动船体,代码很少,却总是记不住,于是就在网上搜了这段代码,记录一下,省的再忘 using System; using System.Collections.Generic; using S ...

  3. winform 拖动无边框窗体(调用Windows API)

    第一步:将窗体的FormBoderStyle属性设置为None: 第二步:添加一个新类:Win32.cs 代码如下: public class Win32 { [DllImport("use ...

  4. winform(无边框窗体与timer)

    一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要放置的控件可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入(pictureBox1_MouseE ...

  5. Winform自定义无边框窗体

    目的: 1.将窗体设置成无边框,如下面效果图 2.该无边框窗体添加了窗体放大.缩小(可以根据需要只能横向放大缩小  或者  竖向放大缩小)的功能 Point vPoint = new Point((i ...

  6. winform 可拖动无边框窗体解决办法

    方法一:通过重载消息处理实现. 鼠标的拖动只对窗体本身有效,不能在窗体上的控件区域点击拖动 /// <summary> /// 通过重载消息处理实现.重写窗口过程(WndProc),处理一 ...

  7. 【Winfrom-无边框窗体】Winform如何拖动无边框窗体?

    去掉边框 this.FormBorderStyle = FormBorderStyle.None; 方法一: Point mouseOff;//鼠标移动位置变量 bool leftFlag;//标签是 ...

  8. Winform 实现无边框窗体移动功能

    #region 窗体移动 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImp ...

  9. 【转】【WPF】 WPF 调用API修改窗体风格实现真正的无边框窗体

    WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm中无边框窗体的样式.但是AllowTransparency ...

随机推荐

  1. linux的审计功能(audit)

    为了满足这样的需求:记录文件变化.记录用户对文件的读写,甚至记录系统调用,文件变化通知.什么是auditThe Linux Audit Subsystem is a system to Collect ...

  2. java分割函数split的用法(二)

    package com.b; public class Sysetm { public static void main(String[] args) { String a=new String(&q ...

  3. 微信小程序之页面跳转

    方式一: <navigator class="menu_block" url="/pages/address/address"> <text ...

  4. C++面试题(三)

    1 什么是函数对象?有什么作用? 函数对象却具有许多函数指针不具有的有点,函数对象使程序设计更加灵活,而且能够实现函数的内联(inline)调用,使整个程序实现性能加速. 函数对象:这里已经说明了这是 ...

  5. 什么是DA控制

    液压系统中的DA控制: Automotive Drive control & Anti stall control 自动变速控制 & 防熄火控制 (DA控制) 1:自动(变速)驱动控制 ...

  6. redis学习六 集群的原理(转载)

    转载自 http://shift-alt-ctrl.iteye.com/blog/2285470 一.Redis Cluster主要特性和设计     集群目标 1)高性能和线性扩展,最大可以支撑到1 ...

  7. Mycat实战之新增基于hash分片的表

    1. 修改rule.xml hash分片规则 主要改两个地方: vi rule.xml 分片数量,这里改为3 对应 三个库 hash规则 默认是id列 这里为 PROVINCE 2. reload 加 ...

  8. 用Python+Django在Eclipse环境下开发web网站

    一.创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置.也就是通过自动生成代码来建立一个Django项目--一个Django项目的设置集,包含了数据库配置.Django详细选项设 ...

  9. c语言语法目录一

    1.#include<stdio.h> include 是要告诉编译器,包含一个头文件 在c语言中,任何库函数调用都需要提前包含头文件 <头文件> 代表让c语言编译器去系统目录 ...

  10. c++ deque 容器

    deque (全名 double ended queue)是一种具有队列和栈一样的数据结构. 在c++标准库中几乎和vector容器的接口完全相同,但它和vector 还是有一些细微的差别. 1. d ...