You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.2 KiB

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 边框
/// <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);
}
}
private void InitializeComponent()
{
this.SuspendLayout();
this.ResumeLayout(false);
}
private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e)
{
}
}
}