C#去边框以及无边框窗体移动

Wesley13
• 阅读 912

1.去边框  :

1) 选中要去除边框的窗体,按F4调出窗体属性。

2)在属性框中找到FormBorderStyle选择none。

C#去边框以及无边框窗体移动

2.去掉边框后实现对窗口程序的拖动

1)双击窗体,进入程序设计界面 添加  using System.Runtime.InteropServices; 

在 { InitializeComponent();  } 后添加以下代码

[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);

bool beginMove = false;//初始化鼠标位置
int currentXPosition;
int currentYPosition;

2)回到窗体界面,点击

如图所示:属性框上部有个小闪电,点击进入 事件页面

C#去边框以及无边框窗体移动

2)分别点击进入MouseDown 、 MouseMove、MouseUp 并分别添加以下代码

//获取鼠标按下时的位置
private void loginForm_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
beginMove = true;
currentXPosition = MousePosition.X;//鼠标的x坐标为当前窗体左上角x坐标
currentYPosition = MousePosition.Y;//鼠标的y坐标为当前窗体左上角y坐标
}
}
//获取鼠标移动到的位置
private void loginForm_MouseMove(object sender, MouseEventArgs e)
{
if (beginMove)
{
this.Left += MousePosition.X - currentXPosition;//根据鼠标x坐标确定窗体的左边坐标x
this.Top += MousePosition.Y - currentYPosition;//根据鼠标的y坐标窗体的顶部,即Y坐标
currentXPosition = MousePosition.X;
currentYPosition = MousePosition.Y;
}
}

//释放鼠标时的位置
private void loginForm_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
currentXPosition = 0; //设置初始状态
currentYPosition = 0;
beginMove = false;
}
}

3.测试你的窗体程序吧
---------------------
作者:研途路
来源:CSDN
原文:https://blog.csdn.net/LPVeneno/article/details/53507112
版权声明:本文为博主原创文章,转载请附上博文链接!

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Stella981 Stella981
3年前
C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法
CWinForm窗体控件Panel修改边框颜色以及边框宽度方法1.新建组件这里可以自定义一个Panel控件起名为PanelEx !(https://oscimg.oschina.net/oscnet/99045
Stella981 Stella981
3年前
Qt 单击任务栏图标实现最小化
Qt中对于窗口边框的设置一般用到setWindowFlags函数。voidsetWindowFlags(Qt::WindowFlagstype)如果只setWindowFlags(Qt::FramelessWindowHint);去掉边框,此时会发现,当程序打开后,单击任务栏的按钮,会发现无法最小化,隐藏窗口。解决的方法是:s
Stella981 Stella981
3年前
C#使用fastreport 实现预览打印
1.新建项目2.添加引用!(https://oscimg.oschina.net/oscnet/9e0a4a2698338e6edad7bb490d6edd725ee.png) 3.主窗体添加预览,打印按钮。子窗体添加previewControl控件4\.  在子窗体加载事件中写代码  代码如下privatevoidCD\
Wesley13 Wesley13
3年前
CSS常用样式(二):绘制双箭头
序言:总结一些常用CSS样式,方便以后使用目录一、多次调用单箭头二、旋转边框直接绘制双箭头一、多次调用单箭头上文介绍2种实现单箭头的方式:边框旋转、双三角覆盖。这次以边框旋转为例多次调用实现双箭头1、边框旋转单箭头实现.arrowright{
Wesley13 Wesley13
3年前
HTML按钮属性
HTML按钮属性border:none;去掉按钮的边框阴影border:1pxsolideee;按钮边框粗细和颜色backgroundcolor:7ED321;设置按钮背景颜色color:FFFFFF";设置按钮中文字颜色borderradius:15px/50%;圆角按钮text
Stella981 Stella981
3年前
HTML前端开发之路——盒子背景属性
1.backgroundclip属性简介backgroundclip属性用于设置盒子背景的一个显示区域,分别有borderbox,paddingbox,contentbox;borderbox表明背景是从边框开始,即包含边框;paddingbox表明背景是从内边距开始,不包含边框;
Wesley13 Wesley13
3年前
C# 、子窗体调用父窗体属性、方法
!(https://oscimg.oschina.net/oscnet/f796908750087388284c07fd140ab336d01.jpg)!(https://oscimg.oschina.net/oscnet/09146926b0dfded4608c39c264540fad19c.jpg)1namespaceTest
Stella981 Stella981
3年前
PDF组件Spire.PDF 教程:在C#中显示PDF文件的打印预览
本文演示如何使用Spire.PDF(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.evget.com%2Fproduct%2F3377%2Fdownload)和c#在Windows窗体应用程序中显示PDF文件的打印预览。在使用下面的代码之前,我们需要创建一个Windows窗
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这