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

前提

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

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

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

NuGet

Install-Package HZH_Controls

目录

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

用处及效果

准备工作

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

开始

添加一个类UCPanelQuote继承 Panel

添加2个属性

 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

1    public UCPanelQuote()
2             : base()
3         {
4             Padding = new Padding(5, 1, 1, 1);
5         }

重绘

 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         }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构专题

一沟绝望的死水:模拟邮件服务器,批量注册利器

我们的目标就是把这互联网搞的更乱更臭,所以我们是不被规则束缚的。今天要拿来开刀的,是邮件系统。

14120
来自专栏小闫笔记

Git推送大文件失败?你晓得如何解决嘛?

我相信这不是我一个人的经历:傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去...

16120
来自专栏量子位

硬核教程:五步掌握用VSCode进行高效Python开发

在程序员圈子里,Visual Studio Code(以下简称VSCode)可以说是目前最火的代码编辑器之一了。

16630
来自专栏申龙斌的程序人生

用欧拉计划学习Rust编程(第32~34题)

最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识。学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快...

11830
来自专栏TeamsSix的网络空间安全专栏

美化 | Conky美化工具的配置

Conky是Linux下的一款桌面美化工具,据说官方已经不再维护更新,但因其高度自定义而受到不少人的青睐,同时又因为其高度自定义使人望而却步,不说这么多的废话了...

14940
来自专栏五分钟学算法

别人家的孩子!CPU、操作系统、编译器全自主写,刘知远点赞!

最近,一个来自福州的男生突然火了,原因是知乎上一个热帖《清华大学计算机专业本科的这位同学是什么水平?》:

18340
来自专栏架构专题

【有趣】这段java太古怪

非常负责任的告诉你,是的!不信请看下图。纯纯正正的java代码,class为XJJ的java源码,执行后打印小姐姐我爱你。

9030
来自专栏机器之心

命令行忘性大?这个开源备忘工具一次解决你的所有烦恼

命令行是非常高效的工具,但一个很常见的现象是,很多命令行过一段时间就容易忘。举个栗子,如果我们常用 git 命令行管理代码、利用 conda 命令管理开发环境,...

9530
来自专栏小闫笔记

强迫症如何干净删除 commit 记录

我相信这不是我一个人的经历:傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去...

10120
来自专栏小闫笔记

git add也能出错?

28310

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励