前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(八十五)c#Winform自定义控件-引用区块

(八十五)c#Winform自定义控件-引用区块

作者头像
冰封一夏
发布2019-10-15 16:47:12
5470
发布2019-10-15 16:47:12
举报
文章被收录于专栏:c#Winform自定义控件系列

前提

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

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

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

NuGet

代码语言:javascript
复制
Install-Package HZH_Controls

目录

https://www.cnblogs.com/bfyx/p/11364884.html

用处及效果

准备工作

没什么可准备的,直接往下看吧

开始

添加一个类UCPanelQuote继承 Panel

添加2个属性

代码语言:javascript
复制
 1 /// <summary>
 2         /// The border color
 3         /// </summary>
 4         private Color borderColor = LineColors.Light;
 5 
 6         /// <summary>
 7         /// Gets or sets the color of the border.
 8         /// </summary>
 9         /// <value>The color of the border.</value>
10         [Description("边框颜色"), Category("自定义")]
11         public Color BorderColor
12         {
13             get { return borderColor; }
14             set
15             {
16                 borderColor = value;
17                 this.Invalidate();
18             }
19         }
20 
21         /// <summary>
22         /// The left color
23         /// </summary>
24         private Color leftColor = StatusColors.Danger;
25 
26         /// <summary>
27         /// Gets or sets the color of the left.
28         /// </summary>
29         /// <value>The color of the left.</value>
30         [Description("左侧颜色"), Category("自定义")]
31         public Color LeftColor
32         {
33             get { return leftColor; }
34             set
35             {
36                 leftColor = value;
37                 this.Invalidate();
38             }
39         }

为了画边框和左边的颜色,设置一下Padding

代码语言:javascript
复制
1    public UCPanelQuote()
2             : base()
3         {
4             Padding = new Padding(5, 1, 1, 1);
5         }

重绘

代码语言:javascript
复制
 1 protected override void OnPaint(PaintEventArgs e)
 2         {
 3             base.OnPaint(e);
 4             e.Graphics.SetGDIHigh();
 5 
 6             e.Graphics.DrawLines(new Pen(borderColor), new Point[] 
 7             { 
 8                 new Point(e.ClipRectangle.Left,e.ClipRectangle.Top),
 9                 new Point(e.ClipRectangle.Right-1,e.ClipRectangle.Top),
10                 new Point(e.ClipRectangle.Right-1,e.ClipRectangle.Bottom-1),
11                 new Point(e.ClipRectangle.Left,e.ClipRectangle.Bottom-1),
12                 new Point(e.ClipRectangle.Left,e.ClipRectangle.Top)
13             });
14 
15             e.Graphics.FillRectangle(new SolidBrush(leftColor), new Rectangle(0, 0, 5, this.Height));
16         }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前提
  • NuGet
  • 目录
  • 用处及效果
  • 准备工作
  • 开始
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档