c# treeview查找并选中节点_(九)C#WinFrom自定义控件系列-树

前提

入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。

本系列文章将讲解各种控件的开发及思路,欢迎各位批评指正。

此系列控件开发教程将全部在原生控件基础上进行重绘开发,目标的扁平化、漂亮、支持触屏。

如果有什么好的建议也可以评论留言来交流。

源码地址:

GitHub:https://github.com/kwwwvagaa/NetWinformControl

码云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git

如果觉得写的还行,请点个 star 支持一下吧

欢迎前来交流探讨: 企鹅群568015492

目录

http://toutiao.com/item/6824291838963220999/

准备工作

对原始树控件treeview进行扩展以更改样式

先了解一下我们需要哪些功能,控件ain可以更改整好颜色,行高,选中效果,分割线等

开始

添加组件,命名TreeViewEx 继承TreeView

先看下属性

  1  private const int WS_VSCROLL = 2097152;  2   3         private const int GWL_STYLE = -16;  4   5         private Dictionary _lstTips = new Dictionary();  6   7         private Font _tipFont = new Font("Arial Unicode MS", 12f);  8   9         private Image _tipImage = Resources.tips; 10  11         private bool _isShowTip = false; 12  13         private bool _isShowByCustomModel = true; 14  15         private int _nodeHeight = 50; 16  17         private Image _nodeDownPic = Resources.list_add; 18  19         private Image _nodeUpPic = Resources.list_subtract; 20  21         private Color _nodeBackgroundColor = Color.FromArgb(61, 60, 66); 22  23         private Color _nodeForeColor = Color.White; 24  25         private bool _nodeIsShowSplitLine = false; 26  27         private Color _nodeSplitLineColor = Color.FromArgb(54, 53, 58); 28  29         private Color m_nodeSelectedColor = Color.FromArgb(255, 121, 74); 30  31         private Color m_nodeSelectedForeColor = Color.White; 32  33         private bool _parentNodeCanSelect = true; 34  35         private SizeF treeFontSize = SizeF.Empty; 36  37         private bool blnHasVBar = false; 38  39         public Dictionary LstTips 40         { 41             get 42             { 43                 return this._lstTips; 44             } 45             set 46             { 47                 this._lstTips = value; 48             } 49         } 50  51         [Category("自定义属性"), Description("角标文字字体")] 52         public Font TipFont 53         { 54             get 55             { 56                 return this._tipFont; 57             } 58             set 59             { 60                 this._tipFont = value; 61             } 62         } 63  64         [Category("自定义属性"), Description("是否显示角标")] 65         public Image TipImage 66         { 67             get 68             { 69                 return this._tipImage; 70             } 71             set 72             { 73                 this._tipImage = value; 74             } 75         } 76  77         [Category("自定义属性"), Description("是否显示角标")] 78         public bool IsShowTip 79         { 80             get 81             { 82                 return this._isShowTip; 83             } 84             set 85             { 86                 this._isShowTip = value; 87             } 88         } 89  90         [Category("自定义属性"), Description("使用自定义模式")] 91      
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值