自定义控件 panel 描边 及加属性
//边框线的宽度
const int LineWidth = 1;
//边框线的颜色
Color RGB = Color.FromArgb(126, 127, 133);
ControlPaint.DrawBorder(e.Graphics,
this.icPanel.ClientRectangle,
RGB,
//left
LineWidth,
ButtonBorderStyle.Solid,
RGB,
//top
LineWidth,
ButtonBorderStyle.Solid,
RGB,
//right
LineWidth,
ButtonBorderStyle.Solid,
RGB,
//bottom
LineWidth,
ButtonBorderStyle.Solid);
核心方法如上
在自定义控件 panel 中加入这个方法 和属性
(1)枚举值用来表示哪几条需要被画
public enum BorderLineStyle
{ None=0,
Left = 1,
Top = 2,
Right = 4,
Bottom = 8,
All = ~0
}
(2)加入到panel 的属性中 使得panel 可以 直接在属性栏中添加
private BorderLineStyle _outline = 0;
[Category("易迅")]
[Description("获得或设置一个值,指示加边框线的位置")]
public BorderLineStyle Outline
{
get { return _outline; }
set
{
_outline = value;
}
}
(3)加入panel 的方法
private readonly int lineWidth = 1;
private readonly Color RGB = Color.FromArgb(126, 127, 133);
/// <summary>
/// 画边框线
/// </summary>
/// <param name="e"></param>
private void PaintOutline(PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics,
this.ClientRectangle,
RGB,
//left
(_outline & BorderLineStyle.Left) == BorderLineStyle.Left ? lineWidth : 0,
ButtonBorderStyle.Solid,
RGB,
//top
(_outline & BorderLineStyle.Top) == BorderLineStyle.Top ? lineWidth : 0,
ButtonBorderStyle.Solid,
RGB,
//right
(_outline & BorderLineStyle.Right) == BorderLineStyle.Right ? lineWidth : 0,
ButtonBorderStyle.Solid,
RGB,
//bottom
(_outline & BorderLineStyle.Bottom) == BorderLineStyle.Bottom ? lineWidth : 0,
ButtonBorderStyle.Solid);
}
(4)
在panel 类中
加入
protected override void OnPaint(PaintEventArgs e)
{
PaintOutline(e);
base.OnPaint(e);
}
让panel 在加载时 使用这个方法
如果你觉得写的不错,欢迎转载和点赞。 转载时请保留作者署名jilodream/王若伊_恩赐解脱(博客链接:http://www.cnblogs.com/jilodream/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)