网上不少代码试了不管用。谁能给个实例。做一个小程序,只要能实现无边框窗体鼠标拖动就可以。
十分感谢!
希望发到邮箱
562515212@qq.com
就当帮忙吧同志们!
using System.Runtime.InteropServices;
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
private const int WM_NCHITTEST = 0x84;
private const int HTCLIENT = 0x1;
private const int HTCAPTION = 0x2;
protected override void WndProc(ref Message message)
{
base.WndProc(ref message);
if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT)
{
message.Result = (IntPtr)HTCAPTION;
}
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mypos = new Point(-e.X, -e.Y);
isok = true;
}
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (isok)
{
//Point xx = MousePosition;
Point xx = Control.MousePosition;
xx.Offset(mypos);
Location = xx;
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isok = false;
}
}
// 移动窗体
const int WM_NCLBUTTONDOWN = 0xA1;
const int HT_CAPTION = 0x2;
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
// 窗体上鼠标按下时
protected override void OnMouseDown(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left & this.WindowState == FormWindowState.Normal)
{
// 移动窗体
this.Capture = false;
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
在有时候我们为了实现软件的美观,我们需要把窗体的边框隐藏,但是问题也会随之而来,在属性中设置了FormBorderStyle应该为None,边框便...在无边框窗体的代码中加入下面的protected override void WndProc(ref Messag
WinForm无边框窗体鼠标可随意拖动 1.命名空间添加引用 using System.Runtime.InteropServices; [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] ...
关于Winform的无边框窗体实现,网络上有很多大牛文章,这里不赘述。我也是参考网络上的思路,在使用别人的代码基础上,发现和遇到了很多小问题,所以做了改造,以下做个记录,也是给需要的人提供一点思路,如果您...
c# winform 无边框窗体 移动办法 一.设置FormBorderStyle为None,则 窗体是 无法被拖动的。 二.若要拖动可通过重写OnMouseMove方法或者MouseDown、MouseUp、MouseMove方法 1.方法一:重写OnMouseMove 以下是代码 ...
1、新建一个Windows窗体应用(.NET Framework),项目名称为MyApp,确定生成解决方案。 2、在解决方案资源管理器里将Form1更改为FormMain。 3、在解决方案资源管理器里右击解决方案'MyApp',添加-新建项目-类库(.N.....
窗体在设置为无边框模式(设置方法:FormBorderStyle=None),默认是无法随意拖动的,也没有最大化、最小化、关闭等按钮。 1) 选中要去除边框的窗体,按F4调出窗体属性。 2)在属性框中找到FormBorderStyle选择...
C# WinForm 拖动无边框窗体 改变无边框窗体尺寸 http://www.cnblogs.com/LonelyShadow/p/3358665.html 经常遇到这种情况、窗体的边框去掉了、然后种种问题就出来了: 不能拖动、 不能改变...
c# 自定义透明winform和创建
这样问题就来了,把winform的边框隐藏后,用户就无法改变窗体大小,也无法拖动窗体位置。经过摸索,最终解决了这些问题,以下代码可以解决用户无法改变窗体大小的问题。 public class BaseForm : Form { const ...
本文参考了以下文章实现改变窗体大小,原文代码直接使用会出现些状况,比如说,往外拖动就再也不能往回拖动,等。因此使用本人修改过后的代码,记录到博客,方便日后查询。参考文章 1.无边框 FormBroderStyle 的值...
第一步:创建MyForm窗体 第二部:设置BorderStyle属性设置为None FormBorderStyle:None 第三步:代码部分 #region 去除窗体边框后,可以改变窗体尺寸 //定义用于设置的常量值 const int Guying_HTLEFT = 10...
1.有边框窗体鼠标拖动事件:窗体的FormBorderStyle设置为None Point mousePosition; Point formPosition; bool isMouseDown = false;//是否按下 bool isMouseIn = false;//是否在窗体内 //鼠标按下 ///...
C#Winform的无边框窗体实现鼠标拖动四周阴影 其他窗体继承这个FormBase就自带阴影 自带可随意拖动了 包是vs2019的源码 低版本的vs需要修改下项目文件打开
方案一:通过DllImport方式调用Windows API实现
**WPF 处理 Windows 消息的模式和 WinForm 不一样了。Window 类里没有 WndProc 函数了,想要截取 Windows 消息必须借助 HwndSource 添加 Hook。 代码:** protected override void OnSourceInitialized(EventArgs e) ...
有时候要实现无边框的winform窗体,由于没有边框了,所以缩放功能没有了,同时也不能拖动窗体。在实际应用中,我们经常会有一个窗体的头部来显示Title,需要在这个头部左键双击实现缩放以及左键按住实现拖动。 缩放...
winfrom界面其实也可以扁平化,让外观提升一个level,整体为360风格。...此时需要添加顶栏拖动、最小化和关闭按钮。 [DllImport("user32.dll")] public static extern bool ReleaseCapture()...
Winform无边框窗口(FormBorderStyle属性为None)默认是不可以拖动或者改变大小的。 1. 拖动无边框窗口改变位置 方法1:通过mousedown、mousemove、mouseup、事件来改变窗口Location。 方法2:通过截获消息,...
最近在写一个日历类的程序类似于win7/8自带的便签这类程序是平时放在桌面上用的所以带着边框肯定很突兀而且不能让它定在那毕竟只设置...翻阅了一下资料有需要改program.cs的,也有重新画窗体的但是发现窗体的方法
不需要添加任何控件,鼠标可以放在边线上拖动窗体,设置窗体进入退出动画效果 鼠标按住窗体移动等
拖动无边框窗体 相信大家都有遇到过这个问题,将winform窗体BorderStyle设置为None时,窗体是无法移动的,解决这个问题可以参考下面代码; 首先建立一个Win32类文件 命名空间引用如下: using System.Runtime....
C# 无边框窗体随意拖动和改变尺寸 const int HTLEFT = 10; const int HTRIGHT = 11; const int HTTOP = 12; const int HTTOPLEFT = 13; const int HTTOPRIGHT = 14; const int HTBOTTOM = 15; const int ...
设置了无边框表单,则无法使用鼠标拖动任意位置。 通过以下方式实现 private void FrmLogin_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) {
解决思路:我们可以通过修改窗体位置从而实现移动窗体的功能。 第一步:定义一个位置信息Point用于存储鼠标位置: private Point mPoint; 第二步:全选窗体(选择一个控件,然后按Ctrl+A),添加MouseDown和...
VS 窗体边框太丑,常常开发时取消边框,但无边框的窗体无法自由拖动,本文介绍如何点击任意位置拖动窗体。 1.定义变量 bool IsDragging = false; //当前拖拽状态 Point p = new Point(0, 0); //记录鼠标按下去的...
WinForm 无边框窗体 拖动工作区移动窗体 分类: C# WinForm 2010-08-23 18:10 280人阅读 评论(1) 收藏 举报 方案1 : 通过重载消息处理实现。重写窗口过程(WndProc),处理一些非客户区消息(WM_
C#-WinForm鼠标在界面的任意位置移动窗体(组件方法实现) 文章目录C#-WinForm鼠标在界面的任意位置移动窗体(组件方法实现)前言源代码组件创建组件类组件类源代码编译在窗体中应用从工具箱中拖拽出组件编写窗体代码...
本套Java视频完全针对初级学员,课堂实录,自发布以来,好评如潮!Java视频中注重与学生互动,讲授幽默诙谐、细致入微,覆盖Java基础所有核心知识点,同类Java视频中也是代码量大、案例多、实战性强的。同时,本Java视频教程注重技术原理剖析,深入JDK源码,辅以代码实战贯穿始终,用实践驱动理论,并辅以必要的代码练习。 通过20的课程学习,使学员掌握java核心语法、面向对象思想编程、异常处理、IO流、集合类、多线程、网络编程等。
该程序用于生成成绩单,需要用户输入各科成绩,程序将自动生成成绩单(总分、平均分、排名)