如何在控件上仅绘制选定的边框
本文关键字:边框 绘制 控件 | 更新日期: 2023-09-27 18:10:41
我正在构建一个自定义控件,我需要它只绘制顶部边界。怎样才能做到呢?
编辑:目前我正在使用这个代码:
protected override void OnPaint(PaintEventArgs e)
{
if (!this.DesignMode)
{
Rectangle bounds = this.ClientRectangle;
GraphicsPath topEdge = new GraphicsPath();
topEdge.StartFigure();
topEdge.AddLine(bounds.X, bounds.Y, bounds.X + bounds.Width, bounds.Y);
topEdge.CloseFigure();
e.Graphics.DrawPath(new Pen(SystemColors.ActiveBorder, 1), topEdge);
}
base.OnPaint(e);
}
当我的自定义控件中没有嵌套控件时,这可以很好地工作。当我开始添加控件时,它们似乎超出了边框。
使用ControlPaint。DrawBorder方法。在任何c# Winform控件周围绘制边框:下面的代码为控件添加边框:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
ControlPaint.DrawBorder(e.Graphics, ClientRectangle,
Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset,
Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset,
Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset,
Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset);
}