前提
入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。
官网:https://www.hzhcontrols.cn
GitHub:https://github.com/kwwwvagaa/NetWinformControl
如果觉得写的还行,请点个 star 支持一下吧
麻烦博客下方点个【推荐】,谢谢
NuGet
Install-Package HZH_Controls
目录
c#Winform自定义控件-目录_c#winform自定义控件-有图标的按钮-优快云博客
用处及效果
使用分页控件效果
不使用分页控件效果
准备工作
我们需要元素控件,需要列表控件,另外为了具有更好的扩展性,元素控件实现接口,方便进行扩展
我们用到了分页控件,如果你还不了解,请移步查看
我们这里的元素控件用到圆角,故继承基类控件UCControlBase,如果不了解,请移步查看
开始
添加一个接口,用来约束元素控件
1 public interface IListViewItem
2 {
3 /// <summary>
4 /// 数据源
5 /// </summary>
6 object DataSource { get; set; }
7 /// <summary>
8 /// 选中项事件
9 /// </summary>
10 event EventHandler SelectedItemEvent;
11 /// <summary>
12 /// 选中处理,一般用以更改选中效果
13 /// </summary>
14 /// <param name="blnSelected">是否选中</param>
15 void SetSelected(bool blnSelected);
16 }
添加一个元素控件,命名UCListViewItem,我们这里继承基类控件UCControlBase,实现接口IListViewItem
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9
10 namespace HZH_Controls.Controls
11 {
12 [ToolboxItem(false)]
13 public partial class UCListViewItem : UCControlBase, IListViewItem
14 {
15 private o