设置gridview样式
来源:互联网 发布:文章标签数据库设计 编辑:程序博客网 时间:2024/06/06 13:02
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
class SetDataViewGirdStyle
{
private static Color _mLinearBeginColor;
private static Color _mLinearEndColor;
private static Color _mBorderColor;
private static bool _IsDrawing2D;
public SetDataViewGirdStyle()
{ }
/// <summary>
/// 设置DataGirdView显示颜色
/// </summary>
/// <param name="dgv">目标DataGirdView对象</param>
/// <param name="BackgroundColor">DataGirdView背景色</param>
/// <param name="SelectionBackColor">选定行的背景色</param>
/// <param name="SelectionForeColor">选定行的前景色</param>
/// <param name="CellSelectionBackColor">单元格被选定时的背景色</param>
/// <param name="RowBackColor">默认行背景色</param>
/// <param name="ImparRowBackColor">默认奇数行背景色</param>
/// <param name="IsDrawRowHeaders">是否绘制行标题颜色</param>
/// <param name="IsDrawing2D">是否启用二维绘制行标题颜色(渐变色)</param>
/// <param name="mLinearBeginColor">渐变色起始颜色</param>
/// <param name="mLinearEndColor">渐变色结束颜色</param>
/// <param name="mBorderColor">边框颜色</param>
public static void SetDgvViewColor(DataGridView dgv, Color BackgroundColor,
Color SelectionBackColor, Color SelectionForeColor,
Color CellSelectionBackColor, Color RowBackColor,
Color ImparRowBackColor, bool IsDrawRowHeaders,
bool IsDrawing2D, Color mLinearBeginColor,
Color mLinearEndColor, Color mBorderColor)
{
dgv.BackgroundColor = BackgroundColor;
dgv.DefaultCellStyle.SelectionBackColor = SelectionBackColor;
dgv.DefaultCellStyle.SelectionForeColor = SelectionForeColor;
dgv.RowHeadersDefaultCellStyle.SelectionBackColor = CellSelectionBackColor;
dgv.RowsDefaultCellStyle.BackColor = RowBackColor;
dgv.AlternatingRowsDefaultCellStyle.BackColor = ImparRowBackColor;
if (IsDrawRowHeaders)
{
_mLinearBeginColor = mLinearBeginColor;
_mLinearEndColor = mLinearEndColor;
_mBorderColor = mBorderColor;
_IsDrawing2D = IsDrawing2D;
dgv.CellPainting += new DataGridViewCellPaintingEventHandler(dgv_CellPainting);
}
}
private static void CellPainting(DataGridViewCellPaintingEventArgs e)
{
Color mLinearColor1 = _mLinearBeginColor;
Color mLinearColor2 = _mLinearEndColor;
Color mGridColor = _mBorderColor;
System.Drawing.StringFormat StrFormat = new StringFormat();
Rectangle Rect = new Rectangle(e.CellBounds.X - 1, e.CellBounds.Y, e.CellBounds.Width, e.CellBounds.Height - 1);
System.Drawing.Drawing2D.LinearGradientBrush LinearGradientBrush = null;
if (_IsDrawing2D)
{
LinearGradientBrush = new System.Drawing.Drawing2D.LinearGradientBrush(Rect, mLinearColor1, mLinearColor2, System.Drawing.Drawing2D.LinearGradientMode.Vertical);
}
else
{
LinearGradientBrush = new System.Drawing.Drawing2D.LinearGradientBrush(Rect, mLinearColor1, mLinearColor1, System.Drawing.Drawing2D.LinearGradientMode.Vertical);
}
try
{
if (e.RowIndex == -1 || e.ColumnIndex == -1)
{
e.Graphics.FillRectangle(LinearGradientBrush, Rect);
e.Graphics.DrawRectangle(new Pen(mGridColor), Rect);
e.PaintContent(e.CellBounds);
e.Handled = true;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if (StrFormat != null)
StrFormat.Dispose();
if (LinearGradientBrush != null)
LinearGradientBrush.Dispose();
}
}
private static void dgv_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
CellPainting(e);
}
/// <summary>
/// 设置DataGirdView样式
/// </summary>
/// <param name="dgv">目标DataGirdView对象</param>
/// <param name="DockStyleType">指定控键停靠的位置和方式</param>
/// <param name="BorderStyleType">指定控键边框样式</param>
/// <param name="IsOrderCol">指定用户是否可手动调整列位置</param>
/// <param name="IsReadOnly">指定用户是否可编辑单元格</param>
/// <param name="IsMultiSelect">指定用户是否可以选择多行</param>
/// <param name="IsResizeCol">指定用户是否可以自己调整列大小(数据量大时请慎用)</param>
/// <param name="IsResizeRow">指定用户是否可以自己调整行大小(数据量大时请慎用)</param>
/// <param name="IsRowHeaders">是否显示行标题</param>
/// <param name="RowHeadersWidth">行标题显示的宽度(当IsRowHeaders=True时HeadersWidth必须大于或等于4;当HeadersWidth大于或等于24时出现行标箭头)</param>
/// <param name="RowCopy">行值复制模式</param>
/// <param name="IsShowIndex">是否在行标题显示序号</param>
public static void SetDgvViewStyle(DataGridView dgv, DockStyle DockStyleType,
BorderStyle BorderStyleType, bool IsOrderCol,
bool IsReadOnly, bool IsMultiSelect,
bool IsResizeCol, bool IsResizeRow,
bool IsRowHeaders, int RowHeadersWidth,
DataGridViewClipboardCopyMode RowCopy, bool IsShowIndex)
{
dgv.Dock = DockStyleType;
dgv.BorderStyle = BorderStyleType;
dgv.AllowUserToAddRows = false;
dgv.AllowUserToDeleteRows = false;
dgv.AllowUserToOrderColumns = IsOrderCol;
dgv.ReadOnly = !IsReadOnly;
dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgv.MultiSelect = IsMultiSelect;
dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
dgv.AllowUserToResizeColumns = IsResizeCol;
if (IsResizeCol)
{
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
}
else
{
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
}
dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
dgv.AllowUserToResizeRows = IsResizeRow;
if (IsResizeRow)
{
dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
}
else
{
dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
}
dgv.RowHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
dgv.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing;
dgv.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dgv.RowHeadersVisible = IsRowHeaders;
if (dgv.RowHeadersVisible && RowHeadersWidth < 4)
{
throw new Exception("RowHeadersWidth Error");
}
dgv.RowHeadersWidth = RowHeadersWidth;
dgv.ClipboardCopyMode = RowCopy;
if (IsShowIndex)
dgv.RowPostPaint += new DataGridViewRowPostPaintEventHandler(dgv_RowPostPaint);
}
private static void dgv_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, ((DataGridView)sender).RowHeadersWidth, e.RowBounds.Height);
TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), ((DataGridView)sender).RowHeadersDefaultCellStyle.Font, rectangle, ((DataGridView)sender).RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
}
}
- 设置gridview样式
- GridView样式设置
- GridView样式设置-竖线及横线
- DevExpress.XtraGrid.GridView 自定义样式设置
- GridView样式用代码来设置
- wince Gridview 设置样式添加数据
- GridView 样式
- GridView 样式
- GridView样式
- GridView样式
- GridView 样式
- gridview 样式
- android 颜色收集及部分gridview样式设置
- 关于gridview的样式
- gridview分页样式
- gridview分页样式
- 关于gridview的样式
- gridview完整样式表
- Qt Creator编译mysql驱动
- 合并GridView单元格
- 通过spring设置java系统属性
- Oracle Form Webutil exception: Cannot Read Image File
- Android界面基本属性 (布局)
- 设置gridview样式
- rcp(插件开发)异常:Exception in thread "Thread-7" org.eclipse.swt.SWTException: Invalid thread access
- 我指间的刺青是对你的誓言
- 算法之美——位操作
- Android多媒体开发【7】-- AwesomePlayer中TimedEventQueue-event事件调度器
- Eclipse中跟踪调试Android Framework源代码
- getPath()返回路径包含的“%20”(空格)
- 页游合服
- axis2实现web service(二)