如何在控件上仅绘制选定的边框

本文关键字:边框 绘制 控件 | 更新日期: 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);
}