Skip to content

gisshare2015/GISShare.Controls.WinForm

Repository files navigation

GISShare.Controls.WinForm & GISShare.Controls.Plugin

GISShare.Controls.WinForm: 是基于.NET开发的WinForm自定义控件库,提供丰富多样的控件(如:浮动工具条、浮动面板、功能区控件、数据表、树结构数据表、列表控件、树控件、折叠面板、分割面板、自定义窗体等),有效地补充VS原生组件库的不足,也是很好地GUI学习资料。控件主要分为WFNew和WinForm两大类,其中WFNew里的控件是基于基础Control类实现(所有控件都是通过BaseItemHost来承载实现),而WinForm则是对原有VS控件的重绘。
GISShare.Controls.Plugin: 是一个UI插件引擎库,设计结构模仿“ArcGIS Desktop”产品,便于大家交流应用。

控件相关
GISShare.Win32.dll:依赖DLL,Windows相关API;
GISShare.Controls.WinForm.dll:自定义控件库(引入VS工具箱即可拖拽使用);
GISShare.Controls.WinForm.Demo.exe:示例DEMO;
插件引擎相关
GISShare.Controls.Plugin.dll:插件接口及引擎
GISShare.Controls.Plugin.WinForm.Demo.Hook.dll:示例DEMO:钩子
GISShare.Controls.Plugin.WinForm.Demo.PluginDLL.dll:示例DEMO插件库
GISShare.Controls.Plugin.WinForm.Demo.exe:示例DEMO

控件相关贴图
1.示例Demo窗口
image
2.浮动工具条:DockPanelManager
image
3.浮动面板:DockBarManager(在WinForm目录)
image
4.功能区控件:RibbonControl
image
5.数据表:GridViewItemListBox
image
6.树结构数据表:GridNodeViewItemTree
image
7.列表控件:ViewItemListBox
image
8.树控件:NodeViewTree
image
9.折叠面板:ExpandableCaptionPanel
image
10.折叠面板容器:ExpandablePanelContainer
image
11.分割面板:CollapsableSplitPanel
image
12.按钮类组件
image
13.标签&输入框类组件
QQ截图20240222165619副本
14.单选项&复选框&滑条&星&分割线&容器类等组件
image
15.功能区相关组件
QQ截图20240222170522副本

插件引擎相关贴图
1.示例Demo窗口
image
2.功能区控件+浮动面板插件展示
image
3.浮动工具条+浮动面板插件展示
image
4.自定义窗体+浮动工具条+浮动面板插件展示
image

VS应用
1.在工具箱右击“添加选项卡”名为“GISShare.Controls.WinForm 组件”,效果图如下:
image
2.常规继承Control的控件直接拖入即可,特别介绍一下“WFNew”命名空间下的绘制类组件(优势:共用一个句柄效率高,多控件不卡顿)的应用:直接拖入“BaseItemHost”控件,点击右上角的箭头,在弹框内点击“关系树设计器”,在弹出的“集合控制设计器”内选择对应节点右击,在弹出的右击菜单内选择对应的操作即可(如:添加子项、清除子项、刷新等,不同的节点内容不通),如下图:
image
3.“BaseItemHost”的根节点就是设计器中的“BaseItemObject”属性,如下图:
image

结语
我是一位GIS方向的Coder,该项目是我在大学初识ArcEngine二次开发时设计研发。2015年之前一直有更新迭代,2015年以后偶有维护,想来已有十几年了。该控件的UI效果可能已经完全跟不上现在的系统了(当然你也可以定制自己的颜色表来修改它),可我觉得它的设计实现对于了解操作系统(如:API、消息机制、事件等),学习GUI知识,插件机制等还是有很大的帮助。所以,把它放在这里,与大家一起交流。