您的位置:首页 > 编程语言 > PHP开发

winform 自定义控件_为TabelLayoutPanel添加一个边框颜色的属性

2018-09-19 17:32 211 查看
[code]using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace UserControl
{
public partial class TableLayoutPanelUserControl : TableLayoutPanel
{
public TableLayoutPanelUserControl()
{
// 控件风格
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.ResizeRedraw, true);
SetStyle(ControlStyles.UserPaint, true);

//设置默认边框颜色为黑色
BorderColor = Color.Black;
}

#region 边框

/// <summary>
/// 获取或设置按钮边框颜色
/// </summary>
/// <value>The color of the focus.</value>
[Browsable(true), DefaultValue(typeof(Color), "Black"), Description("按钮边框颜色")]
[Category("Appearance")]
public Color BorderColor { get; set; }

#endregion

//Table边框的绘制需要对每一个单元格的边框进行绘制
protected override void OnCellPaint(TableLayoutCellPaintEventArgs e)
{
base.OnCellPaint(e);
var panel = this as TableLayoutPanel;
e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
var rectangle = e.CellBounds;
using (Pen pen = new Pen(BorderColor))
{
pen.Alignment = PenAlignment.Center;
pen.DashStyle = DashStyle.Solid;

if (e.Row == (panel.RowCount - 1))
{
rectangle.Height -= 1;
}

if (e.Column == (panel.ColumnCount - 1))
{
rectangle.Width -= 1;
}

e.Graphics.DrawRectangle(pen, rectangle);
}
}
}
}

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: