第一步:首先引用DLL

再窗体中继承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);}

运行结果如下:

百度网盘下载链接:

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

提取码:c7ne

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

小编微信:mm1552923

公众号:dotNet编程大全

c#winform自定义窗体(含源码)相关推荐

  1. console.log打印:自定义样式(含源码、效果图)

    console.log打印:自定义样式(含源码.效果图) 效果图 · 示下: 案例 · 代码如下: 使用说明: 真的可以实现控制台打印出来的内容:有不同的font-size.不同的color.不同的渐 ...

  2. Flutter 组件之 Flutter高级自定义TabBar(教程含源码)

    实战需求 Flutter 组件之 Flutter高级自定义TabBar(教程含源码) 本文价值与收获 看完本文后,您将能够作出下面的界面 实战代码 import 'package:flutter/ma ...

  3. SwiftUI 动画大全之 五彩纸屑特效含三角形、五星、钻石与自定义图像 (教程含源码)

    实战需求 SwiftUI 动画大全之 五彩纸屑特效含三角形.五星.钻石与自定义图像 (教程含源码) 下雨了,五彩纸屑!SAConfettiView是向您的应用程序添加有趣.多彩的五彩纸屑并让用户感到有 ...

  4. 原文地址:一共470多例winform 界面特效的源码

    转载自:http://blog.sina.com.cn/s/blog_6cad1bf401013pnx.html 一共470多例winform 界面特效的源码. 窗体与界面设计... 9 实例001  ...

  5. 一共470多例winform 界面特效的源码

    http://blog.sina.com.cn/s/blog_69dcf6a80100uakc.html 一共470多例winform 界面特效的源码. 窗体与界面设计... 9 实例001  带历史 ...

  6. 470例 Winform界面特效的源码

    一共470多例winform 界面特效的源码. 窗体与界面设计... 9 实例001 带历史信息的菜单 10 实例002 菜单动态合并 12 实例003 像开始菜单一样漂亮的菜单... 14 实例00 ...

  7. python视频网站项目_Python开发教育网站项目实例教学(105集视频课程含源码)

    Python开发教育网站项目实例教学(105集视频课程含源码)课程简介: Python开发教育网站项目实例教学(105集视频课程含源码)通过这105集Python实例视频课程的学习,学员可以掌握到使用 ...

  8. Eatting外卖基于瑞吉外卖代码全功能优化含源码

    Eatting外卖基于瑞吉外卖代码全功能优化含源码 文章目录 项目的最终部署 源码地址 github:[源码地址](https://github.com/yangxingyue0623/Eating_ ...

  9. JAVA实训项目:银行网银系统管理平台(含源码)

    JAVA实训项目:银行网银系统管理平台(含源码) 文章目录 JAVA实训项目:银行网银系统管理平台(含源码) 前言 一.项目功能需求描述以及相关技术的应用 相关技术应用 二.设计过程 系统流程图 1. ...

最新文章

  1. 一起学nRF51xx 2 - clock
  2. python 手动读取cifar10_Python搞定Excel,秒解决!大大提高工作效率
  3. 李幸原:看好实时音视频在教育与医疗的前景
  4. Linux学习笔记5
  5. Eclipse StartExplorer插件
  6. Qt4_实现自定义模型
  7. Google Chrome,另类的邪恶垄断?
  8. 软件外包的话居然会有这样的后果...
  9. 关于MFC中CSpinButtonCtrl控件
  10. java面向对象--对象初始化
  11. poj 3264 Balanced Lineup RMQ问题
  12. C与指针——指针(一)
  13. 联想Thinkpad sl400 7HC入手感觉
  14. 职业规划路线(研究生阶段)
  15. PHP程序判断男女身高体重是否,最新男女标准体重对照表,快来看看你达标了没?...
  16. 设计模式之装饰者模式
  17. import math java_java 中 Math类
  18. 马哥教育42期第五周作业
  19. 强光手电充电快才能持久使用(LDR6328S)
  20. 一文了解51PCB的高精密HDI工艺详解

热门文章

  1. android通过代码设置铃声_第六十四回:Android中UI控件之SeekBar
  2. oo第三次博客-JML规格
  3. C# -- 文件的压缩与解压(GZipStream)
  4. bzoj 1024 [ SCOI 2009 ] 生日快乐 —— 递归
  5. [bzoj1050 HAOI2006] 旅行comf (kruskal)
  6. php扩展开发1--添加函数
  7. 学习笔记-第四周-心得体会
  8. 【转】Linux中断处理学习笔记
  9. JNI中的内存管理(转)
  10. CentOS升级Python2.7及安装pip