转自:https://blog.shengxunwei.com/Home/Post/179ee0db-aec6-4e63-a6a8-8456033cd75f

 

 

升讯威 .Net WinForm 控件库提供了超过15种 Winform 控件,源代码已经完全开源在了 Github 上。你可以直接使用本控件库,更可以通过本控件库学到 Winform 控件开发的方法和理念。你可以学习到:1)如何基于 Control 类重头开始实现一个具备复杂功能的 Winform 控件;2) GDI+ 绘图接口的使用方法,以及如果与用户的行为进行交互;3) 不同设计模式在 Winform 控件开发中的应用;
分类:
标签:
2017/8/17 1:58:07
 

Github 地址:https://github.com/iccb1013/Sheng.Winform.Controls

本控件库中的代码大约写于10年前(2007年左右)。

SailingEase WinForm Framework WinForm开发框架开发手册:http://docs.shengxunwei.com/Home/Browser/sewinformfw/

升讯威 .Net WinForm 控件库提供了超过15种 Winform 控件,你可以直接使用本控件库,更可以通过本控件库学到 Winform 控件开发的方法和理念。

你可以学习到:

  • 如何基于 Control 类重头开始实现一个具备复杂功能的 Winform 控件;
  • GDI+ 绘图接口的使用方法,以及如果与用户的行为进行交互;
  • 不同设计模式在 Winform 控件开发中的应用;

对于设计模式,很多人的观念是它是用来解决大型解决方案中的问题的,但是我们在这里可以看到,设计模式不仅仅用于分解大型工程,小到一个 Winform 控件的开发,都需要具备良好的模式去帮助你分解问题,解决问题。

例如说原型模式,我虽然能够对这种模式娓娓道来,但是一直想不出它的应用场景到底是什么,直到我发现微软在实现 DataGridView 时,应用了原型模式解决了若干问题,才豁然开朗。

而其它诸如工厂模式,创建者模式,命令模式等,在复杂 Winform 控件的开发中,都有非常契合的应用场景。

源代码中包括了详细的注释,相信对你阅读使用源代码会有一定的帮助:

升讯威 .Net WinForm 开源控件使用——c#

注意:本控件库个别位置少量使用了第三方开源代码,具体可见代码中的注释。


DEMO:

起启页控件:

此启始页控件,是由 WebBrowser 定制的,允许你实现一个类似 VisualStudio 一样的启始页。

也可以使用此控件,实现 Html 页面与客户端混合的应用程序。

此页面中的数据可以由 C# 程序输出,此页面中的 JavaScript 函数可以由 C# 调用,反之亦然,页面中的 JavaScript 代码可以调用 C# 代码中的函数。

升讯威 .Net WinForm 开源控件使用——c#

ShengDataGridView

ShengDataGridView 重绘了整个 DataGridView 的外观。包括 Checkbox 列和 Image 列,使其更加美观。
ShengDataGridView 的绘图逻辑实现在渲染器 ShengDataGridViewRender 中,你可以修改或重新实现新的渲染器以定制控件的外观。
也可以直接借助 ShengDataGridViewRendererTheme 在既有外观的基础上定制主题配色等。

升讯威 .Net WinForm 开源控件使用——c#

ShengListView

ShengListView 是完全重头实现的一个 ListView 控件,而非原生 ListView 的继承和扩展。
将布局相关的逻辑,独立实现为不同的 Layout,ShengListViewLayoutManager 作为基类,提供了布局所需的基本功能。
将绘图相关的逻辑,独立实现为不同的 Render,ShengListViewRenderer 作为基类,提供了绘图所需的基本功能。
而绘图时所需要用的配色方案,在 ShengListViewTheme 中定义,你可以定制不同的主题。

升讯威 .Net WinForm 开源控件使用——c#

ShengComboSelector

ShengComboSelector 是一个下拉选择框控件,这是一个重头实现的控件,并非基原生下拉框控件的继承和扩展。
你可以修改源代码,绘制想要的任何外观。
在绘制过程中所需的配色方案,都已独立定义,你也可以直接修改配色方案来定制外观。
一般情况下,推荐使用 ShengComboSelector2,因为 ShengComboSelector2 是直接基于 Control 实现的,具有更好的性能表现,你也可以修改 ShengComboSelector 的源代码使其直接从 Control 实现而不是 UserControl。

升讯威 .Net WinForm 开源控件使用——c#

ShengComboSelector2

ShengComboSelector2 是一个下拉选择框控件,这是一个重头实现的控件,并非基原生下拉框控件的继承和扩展。
你可以修改源代码,绘制想要的任何外观。
ShengComboSelector2 比 ShengComboSelector 具有更好的性能,因为它是基于 Control 实现的,而 ShengComboSelector 是基于 UserControl 实现的。
在绘制过程中所需的配色方案,定义在 ShengComboSelectorTheme 中,你可以直接修改配色方案来或定制自己的主题配色方案。

升讯威 .Net WinForm 开源控件使用——c#

ShengAdressBar

ShengAdressBar 是一个模仿 Windows 资源管理器地址栏的控件。
除了默认实现的 ShengFileSystemNode ,用来提供和资源管理器地址栏一样的功能之外,你也可以继承 IShengAddressNode 接口,实现自己的基于任何数据的路径选择器。并不局限于磁盘路径的选择。

升讯威 .Net WinForm 开源控件使用——c#

ShengImageListView

ShengImageListView 是一个图像浏览器控件。
ShengImageListView 具有非常良好的实现结构,独立实现了布局管理器,渲染器,和配色方案。
ShengImageListViewRenderer,ShengImageListViewStandardRenderer:渲染器基类和默认实现的渲染器。
ShengImageListViewLayoutManager 默认实现的布局管理器。
ShengImageListViewTheme 主题功能,提供渲染器所需使用的配色方案。
你可以通过修改或实现新的布局管理器,渲染器,实现更加复杂的功能,甚至是完全不同用处的控件,例如:一个售票系统的选座控件。

升讯威 .Net WinForm 开源控件使用——c#

ShengTreeView

ShengTreeView 是对原生 TreeView 的扩展,使其能够支持 支持Win7/Vista外观 风格的外观,以及节点的拖放操作。

升讯威 .Net WinForm 开源控件使用——c#

ShengThumbnailImageListView

ShengThumbnailImageListView 是一个简单的缩略图浏览控件。
ShengThumbnailImageListView 是基于 ListView 实现的,并使用了独立的后台线程加载图片。
如果需要更高级的功能,或更加深入的定制,你可以使用 ShengImageListView

升讯威 .Net WinForm 开源控件使用——c#

大杂烩

升讯威 .Net WinForm 开源控件使用——c#

相关文章:

  • 2021-05-10
  • 2022-12-23
  • 2021-07-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-20
猜你喜欢
  • 2021-09-05
  • 2022-12-23
  • 2021-10-07
  • 2021-07-08
  • 2021-12-22
  • 2022-01-13
相关资源
相似解决方案