using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; namespace MorClient { public partial class TableLayoutPanelUserControl : TableLayoutPanel { public TableLayoutPanelUserControl() { InitializeComponent(); // 控件风格 SetStyle(ControlStyles.SupportsTransparentBackColor, true); SetStyle(ControlStyles.OptimizedDoubleBuffer, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.ResizeRedraw, true); SetStyle(ControlStyles.UserPaint, true); //设置默认边框颜色为黑色 BorderColor = Color.Black; } #region 边框 /// /// 获取或设置按钮边框颜色 /// /// The color of the focus. [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); } } private void InitializeComponent() { this.SuspendLayout(); this.ResumeLayout(false); } private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e) { } } }