Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

gisshare2015/GISShare.Controls.WinForm

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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知识,插件机制等还是有很大的帮助。所以,把它放在这里,与大家一起交流。

Morty Proxy This is a proxified and sanitized view of the page, visit original site.