分享一个我自己的C# UI类库,目前支持普通窗体及MDI窗体主题自定义
1. 首先说明:
(1)提供全部类库及示例代码,但代码仅限于学习和技术交流之用。
(2)目前类库只有窗体,没有其它控件,但窗体支持MDI。
(3)类库还有些问题未能解决,具体请看代码附带的文档。
2. 类库实现的界面效果:
多标签浏览器:



普通窗体:





3. 实现的主要技术
(1) 拦截WM_NCCALCSIZE消息,使客户区铺满整个窗口,这样我们控制客户区就控制了整个窗口。
(2) 拦截WM_NCHITTEST消息,自己处理并返回相应结果解决窗体移动,鼠标改变大小的问题。
(3) 重写OnPaint()方法,利用该方法提供的Graphics对象绘制整个窗口。由于客户区已经铺满了整个窗口,所以利用这个Graphics就可以在窗口的任意位置画任意元素了,包括模拟的标题栏,窗体边框,控制按钮等。
(4) MDI的实现:完全利用GDI+绘制整个Mdi-Bar,内部记录各个标签页的位置及大小,处理其鼠标单击等操作。
4. 下载地址
从这里下载
下载的代码中附带类库使用文档。
(1)提供全部类库及示例代码,但代码仅限于学习和技术交流之用。
(2)目前类库只有窗体,没有其它控件,但窗体支持MDI。
(3)类库还有些问题未能解决,具体请看代码附带的文档。
2. 类库实现的界面效果:
多标签浏览器:



普通窗体:





3. 实现的主要技术
(1) 拦截WM_NCCALCSIZE消息,使客户区铺满整个窗口,这样我们控制客户区就控制了整个窗口。
(2) 拦截WM_NCHITTEST消息,自己处理并返回相应结果解决窗体移动,鼠标改变大小的问题。
(3) 重写OnPaint()方法,利用该方法提供的Graphics对象绘制整个窗口。由于客户区已经铺满了整个窗口,所以利用这个Graphics就可以在窗口的任意位置画任意元素了,包括模拟的标题栏,窗体边框,控制按钮等。
(4) MDI的实现:完全利用GDI+绘制整个Mdi-Bar,内部记录各个标签页的位置及大小,处理其鼠标单击等操作。
4. 下载地址
从这里下载
下载的代码中附带类库使用文档。
...全文
相关推荐
分享一个我自己的C# UI类库,支持普通窗体及MDI窗体主题自定义
目前类库只有窗体,没有其他控件,但窗体支持MDI。带两个示例程序,一个多标签浏览器,一个可运行时更换主题的普通窗体。代码仅用于学习和技术交流之用。
C#中实现左菜单动态加载主菜单源代码分享
个很炫的mdi主窗口页面一般都会有一个顶上的主菜单和左侧菜单,这样方便用户打开子业务表单 没有用到第三方控件时,我们只能用panel和button来实现,如果用devExpress工具很轻松的实现,
DOTNET-C#基础快速入门教程-全网最简单
DOTNET_C#基础快速入门教程,100多页的pdf文档,包括了常用的基础知识点: 数据类型 类型转换 变量、常量、运算符 字符串 流程控制 数组 结构、枚举 访问修饰符 方法 装箱和拆箱 接口 类和对象 多态 C# 预处理器 正则表达式 文件和流 I/O 异常处理 索引器 (Indexer) 特性(Attribute) 反射(Reflection) 属性(Property) 委托(delegate) 事件(event) 集合 泛型 匿名变量 匿名方法 Lambda表达式 闭包(Closure) LINQ技术 多线程 网络编程 窗体设计 Form窗体 MDI窗体 常用控件
Winform项目开发心得
Winform项目开发心得
ggg.rar_ASSGGG_www.ggg.c_右键菜单
这是个在MDI中的右键菜单的例子,并且做了分割,大家可以参考参考!


