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
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)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|