C#DataGridView单元格边框颜色问题(续2)

文本单元格

View Code
/// <summary>
/// 表格文本单元格
/// </summary>
public class DataGridViewColorTextBoxCell : DataGridViewTextBoxCell
{
/// <summary>
/// 是否可用
/// </summary>
public bool Enabled
{
get;
set;
}
/// <summary>
/// 是否可见
/// </summary>
public bool Display
{
get;
set;
}

/// <summary>
/// 头部边框颜色
/// </summary>
public Color TopBorderColor
{
get;
set;
}
/// <summary>
/// 右侧边框颜色
/// </summary>
public Color RightBorderColor
{
get;
set;
}
/// <summary>
/// 底部边框颜色
/// </summary>
public Color BottomBorderColor
{
get;
set;
}
/// <summary>
/// 左侧边框颜色
/// </summary>
public Color LeftBorderColor
{
get;
set;
}

// Override the Clone method so that the Enabled property is copied.
public override object Clone()
{

DataGridViewColorTextBoxCell cell =
(DataGridViewColorTextBoxCell)base.Clone();

cell.Enabled = this.Enabled;
cell.Display = this.Display;
cell.TopBorderColor = this.TopBorderColor;
cell.RightBorderColor = this.RightBorderColor;
cell.BottomBorderColor = this.BottomBorderColor;
cell.LeftBorderColor = this.LeftBorderColor;
return cell;
}

// By default, enable the button cell.

public DataGridViewColorTextBoxCell()
{
this.Enabled = true;
this.Display = true;
this.TopBorderColor = Color.Empty;
this.RightBorderColor = Color.Empty;
this.BottomBorderColor = Color.Empty;
this.LeftBorderColor = Color.Empty;
}

protected override void Paint(Graphics graphics,
Rectangle clipBounds, Rectangle cellBounds, int rowIndex,
DataGridViewElementStates elementState, object value,
object formattedValue, string errorText,
DataGridViewCellStyle cellStyle,
DataGridViewAdvancedBorderStyle advancedBorderStyle,
DataGridViewPaintParts paintParts)
{
// Draw the cell background, if specified.
if ((paintParts & DataGridViewPaintParts.Background) ==
DataGridViewPaintParts.Background)
{

SolidBrush cellBackground =
new SolidBrush(cellStyle.BackColor);
graphics.FillRectangle(cellBackground, cellBounds);
cellBackground.Dispose();
}

// Draw the cell borders, if specified.
if ((paintParts & DataGridViewPaintParts.Border) ==

DataGridViewPaintParts.Border)
{
PaintBorder(graphics, clipBounds, cellBounds, cellStyle,
advancedBorderStyle);

}
if (Display)
{
if (!Enabled)
{
// Paint background
graphics.FillRectangle(Brushes.Silver, cellBounds);
}
else
{
base.Paint(graphics, clipBounds, cellBounds, rowIndex,
elementState, value, formattedValue, errorText,
cellStyle, advancedBorderStyle, paintParts);
}
}
//绘制边框
if (TopBorderColor != Color.Empty)
{
graphics.DrawLine(new Pen(TopBorderColor), cellBounds.X, cellBounds.Y, cellBounds.X + cellBounds.Width, cellBounds.Y);
}
if (RightBorderColor != Color.Empty)
{
graphics.DrawLine(new Pen(RightBorderColor), cellBounds.X + cellBounds.Width-1, cellBounds.Y, cellBounds.X + cellBounds.Width-1, cellBounds.Y + cellBounds.Height);
}
if (BottomBorderColor != Color.Empty)
{
graphics.DrawLine(new Pen(BottomBorderColor), cellBounds.X, cellBounds.Y + cellBounds.Height-1, cellBounds.X + cellBounds.Width, cellBounds.Y + cellBounds.Height-1);
}
if (LeftBorderColor != Color.Empty)
{
graphics.DrawLine(new Pen(LeftBorderColor), cellBounds.X, cellBounds.Y, cellBounds.X, cellBounds.Y + cellBounds.Height);
}
}
}

列:

View Code
/// <summary>
/// 表格文本列
/// </summary>
public class DataGridViewColorTextBoxColumn : DataGridViewTextBoxColumn
{
public DataGridViewColorTextBoxColumn()
{
this.CellTemplate = new DataGridViewColorTextBoxCell();
}
}

转载于:https://www.cnblogs.com/zcfsky/archive/2012/02/15/2352090.html

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页