c#winform自定义窗体(含源码)

第一步:首先引用DLL

0c73d8df41e87c2e9fb6b3ccfd5a38df.png

再窗体中继承DevComponents.DotNetBar.OfficeForm

public partial class MainForm  : DevComponents.DotNetBar.OfficeForm

初始化程序中添加 this.EnableGlass = false;

public MainForm(){this.EnableGlass = false;InitializeComponent();}

第二步:重绘标题栏

this.FormBorderStyle = FormBorderStyle.None;

先将原生窗体设置成无边框,FormBoderStyle设置成None
然后添加一个panpel控件设置成窗体的的标题栏,并将panel的dock属性设置为Top;

然后添加四个labell控件充当标题和最小化最大化关闭按钮。

此时界面的原型就出来了。

第三步:最小最大关闭事件

注册事件

this.panelEx1.MouseDown += panel1_MouseDown;this.MouseDown += MainForm_MouseDown;

为事件添加处理方法

private void MinFormLabel_Click(object sender, EventArgs e){this.WindowState = FormWindowState.Minimized;}private void MaxFormLabel_Click(object sender, EventArgs e){if (this.WindowState != FormWindowState.Maximized){this.WindowState = FormWindowState.Maximized;}else{this.WindowState = FormWindowState.Normal;}}private void CloseFormLabel_Click(object sender, EventArgs e){this.Close();}

第四步:窗体拖动

[DllImport("user32.dll")]public static extern bool ReleaseCapture();[DllImport("user32.dll")]public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);private const int VM_NCLBUTTONDOWN = 0XA1;//定义鼠标左键按下private const int HTCAPTION = 2;private void MainForm_MouseDown(object sender, MouseEventArgs e){//为当前应用程序释放鼠标捕获ReleaseCapture();//发送消息 让系统误以为在标题栏上按下鼠标SendMessage((IntPtr)this.Handle, VM_NCLBUTTONDOWN, HTCAPTION, 0);}private void panel1_MouseDown(object sender, MouseEventArgs e){//为当前应用程序释放鼠标捕获ReleaseCapture();//发送消息 让系统误以为在标题栏上按下鼠标SendMessage((IntPtr)this.Handle, VM_NCLBUTTONDOWN, HTCAPTION, 0);}

运行结果如下:

1548372ae932816649d535db33f84a97.png

百度网盘下载链接:

链接:https://pan.baidu.com/s/1jI5bo3LxGM2HmJsouK8oMw

提取码:c7ne

技术群: 需要进技术群学习交流的请添加小编微信,切记备注:加群,对U上内容有什么疑问也可以直接和小编直接沟通交流!     

小编微信:mm1552923   

公众号:dotNet编程大全      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux之tmp文件夹

最近开始学习LINUX,关于/tmp文件夹, 查了些资料,/tmp文件夹是存放linux临时文件的地方,在Linux系统中/tmp文件夹里面的文件会被清空,至于多长时间被清空,如何清空的,可能就不清除了。 在CentOS5…

如何巧妙拒绝老同学借钱?哈哈哈哈哈......

1 别说,还挺像...cr:豆瓣银河系漫游1999▼2 奇奇怪怪的赚钱方式又增加了▼3 教你如何做到边吃边睡...▼4 方法二还挺有道理...▼5 总是在不该清醒的时候清醒▼6 多令人怀念!▼7 对不起,我太菜了▼8 哈哈哈哈哈▼8 数学能有…

协同过滤

在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法。本文将带你深入了解协同过滤的秘密。 1 什么是协同过滤 协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简…

移动平台对 meta 标签的定义

下面介绍一些有关标记的例子及解释。 一、meta 标签分两大部分:HTTP 标题信息(http-equiv)和页面描述信息(name)。 1、http-equiv 属性的 Content-Type 值(显示字符集的设定) 说明:设…

微信改成右滑删除_手机文件数据恢复,怎样恢复已过期的微信附件呢?

手机文件数据恢复,怎样恢复已过期的微信附件呢?我们在恢复手机删除的文件之前,很多人都想知道,为什么自己的文件删除了可以被恢复,既然能被恢复,是我彻底删除不了手机的文件吗?文件真的消失了吗…

linux之cat命令详解

简略版: cat主要有三大功能: 1.一次显示整个文件。$ cat filename 2.从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件: $cat file1 file2 > file参数: -n 或 --nu…

【.NET 遇上 GraphQL】使用 Hot Chocolate 构建 GraphQL 服务

Hot Chocolate 是 .NET 平台下的一个开源组件库, 您可以使用它创建 GraphQL 服务, 它消除了构建成熟的 GraphQL 服务的复杂性, Hot Chocolate 可以连接任何服务或数据源,并创建一个有凝聚力的服务,为您的消费者提供统一的 API。在本文中, 我会在 .NET 应…

POJ2184 Cow Exhibition(DP:变种01背包)

题意: 一群奶牛分别有s和f两个值,要求选出一些奶牛使s与f的和最大并且s和f分别的和不能为负数。 要点: 用dp[i]j表示当s的和为i时f的和为j,这样最后只要求dp[i]i的最大值即可。注意这题因为有负数,所以引入一个偏移量。…

PHP命令注入***

PHP命令注入***漏洞是PHP应用程序中常见的脚本漏洞之一,国内著名的Web应用程序Discuz!、DedeCMS等都曾经存在过该类型漏洞。本文描述了常见的PHP命令注入***漏洞存在形式和利用方法,结合漏洞实例进行分析和漏洞利用,并针对如何防范PHP命令注入…

Vim文本编辑器 指令大全(二)

经常处理文本以及经常需要写代码的人,都会有自己比较常用的编辑器,本人喜欢用Vim,理由就是Vim编辑器灵活,并且可以达到纯键盘操作,使用纯熟情况下,根本不需要鼠标操作,听起来是不是很酷的&#…

电脑用户名_仁霸下料优化软件如何找回密码、更换绑定电脑?

今天有客户来找我们管件管家,说注册密码忘记了,登陆不上软件问怎么找回;还有个用户因为换了电脑,需要将账号移到新电脑上。此前我们以玻璃软件为例说了如何下载以及在哪里找到下载文件的位置,这期还是以玻璃软件为例讲…

linux之universal usb installer安装ubuntu

Universal-USB-Installer这个工具是用来制作U盘启动盘的,下面以制作Ubuntu版本Linux系统的U盘启动盘为例,方法如下: 1、安装Universal USB Installer软件,打开后,点击“Browse”按钮浏览下载到本地磁盘的Ubuntu系统ISO…

Android系统的体系结构、开发语言及源码结构

整理自android系统体系结构 Android 是google公司针对手机开发的一个平台,并公布了其中大部分代码,其大部分应用程序都是用JAVA开发的,毕竟它是商业性的产品嘛,有所保留也是理所 当然的。对于搞嵌入式linux开发的人来说我们可以从…

Blazor系列终结!

终于完结Blazor系列转载终结啦,其实站长在25号时就已完成转载,并同步在Dotnet9网站(https://dotnet9.com)发布,并创建了一个专辑《大家一起学Blazor》,大家可随时在网站浏览。Dotnet9网站同步转载感受 ASP.…

Mysql安装及自动化部署脚本方案

一.简介 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中,但是在…

男人对待恋爱的不同阶段......

1 小猫咪为何那样恨我(via.豆瓣哈组,侵删)▼2 驾驶位上方的扶手有什么用?(素材来源网络,侵删)▼3 回村听到最劲爆的消息(素材来源网络,侵删)▼4 男人对待恋…

PPT快捷键大全(作分析报告的人有福了)

AltF9 隐藏参考线 ctrl[ 缩小字号 ctrl] 增大字号 ctrlz 撤销 ctrly 撤销的反向动作 ctrld 快速复制 CTRLG 组合 A 在放映时,隐藏/显示鼠标箭头 AltG 切换到“设计”功能选项卡中 AltH 切换到“开始”功能选项卡中 AltK …

用递归方式实现二叉树先序、中序、后序遍历

先序遍历:中、左、右 中序遍历:左、中、右 后序遍历:左、右、中 比如下面这科树 1 2 3 4 5 6 7 package com.sangfor.tree;public class Node {public int value;public Node left;public Node right;public Node(int value) {this.value = value;} } pac…

2个网页跳来跳去_好人网页同步器,使用教程

好人网页同步器,点我下载软件作用:操作N个浏览器,且动作同步操作。软件操作流程:1、打开软件,点击注册账号,系统就算1小时测试时间给你。然后用你的账号登录到好人网页同步器。2、进入主界面后,…