-
数据绑定
- 直接指定源数据(List<T>):this.DataSource = data;
- 通常也可以直接指定DataTable类型的数据
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn(_column1Name, Type.GetType("System.String"));
dt.Columns.Add(dc1);
foreach (string searchText in VisualXmlApp.Instance.searchHistoryGridView.Take())
{
DataRow dr = dt.NewRow();
dr[_column1Name] = searchText;
dt.Rows.Add(dr);
}
this.dgvDataSourceSearchHistory.DataSource = dt;
- 自定义列
- 取消自动生成列:this.AutoGenerateColumns = false;
- 自定义列数、列名、列宽权重、列填充
this.Columns.Clear();
this.ColumnCount = ;
this.Columns[].Name = "Column 1";
this.Columns[].DataPropertyName = "VarName";
this.Columns[].FillWeight = ;
this.Columns[].Name = "Column 2";
this.Columns[].DataPropertyName = "VarPath";
this.Columns[].FillWeight = ;
this.Columns[].Name = "Column 2";
this.Columns[].FillWeight = ;
- 样式
-
整体背景色(当窗口变大时,空白处的颜色)
- this.BackgroundColor = DataSourceUIParams.WindowBackColor;
-
边框
-
风格
- DataGridView.BorderStyle
- BorderStyle 枚举: FixedSingle(单线,默认)、Fixed3D、None
-
颜色(所有边框,含普通数据行和头部)
- this.GridColor = Color.FromArgb(173, 190, 203);
- 如果要头部生效,别忘了取消系统风格影响:this.EnableHeadersVisualStyles=false;
- 默认是 ControlDarkDark 。但是只有在 CellBorderStyle 被设定为 Single、SingleHorizontal、SingleVertical 的条件下才能改变其边框线的颜色。
- 如果是自定义了一个控件继承自DataGridView,那么即使在这个控件中设置了不显示边框,在父控件中仍然需要再设置一次其BorderStyle = BorderStyle.None;
- 其他可参考(如颜色、四个方位边框的单独设置):https://blog.csdn.net/yunhaic/article/details/7176015
-
风格
-
头部
- 取消使用系统风格:this.EnableHeadersVisualStyles = false;
-
行头
- 取消显示行头
- this.RowHeadersVisible = false;
- 边框
- 风格
- 直接设置RowHeadersBorderStyle,默认是DataGridViewHeaderBorderStyle.Raised,可改为Single、None等。属性设定值是DataGridViewHeaderBorderStyle枚举的值
- 风格
- 取消显示行头
-
列头
- 取消显示列头
- this.ColumnHeadersVisible = false;
- 高度
- 先把ColumnHeadersHeightSizeMode从默认的AutoSize设置为EnableResizing
- 再用ColumnHeadersHeight直接设置高度
- 注:代码构造函数中直接设置这两个属性也可以
- 注:将DataGridView设置固定高度,并自动显示滚动条时,如果Header高度是AutoSize的,可能会使最后一行显示不全
- 字体
- 边框
- 风格
- 直接设置ColumnHeadersBorderStyle,默认是DataGridViewHeaderBorderStyle.Raised,可改为Single、None等。属性设定值是DataGridViewHeaderBorderStyle枚举的值
- 同样,ColumnHeadersBorderStyle只能设定单元格全部边框线的式样。要单独改变单元格某一边边框式样的话,需要用到设定行头单元格的属性是: RowHeadersBorderStyle, 设定列头单元格属性是:ColumnHeadersBorderStyle
- 风格
- 取消显示列头
-
数据行
-
高度
- this.RowTemplate.Height = 30;
-
奇偶行
- 背景色
- this.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(223, 230, 237);
- this.RowsDefaultCellStyle.BackColor = Color.White;
- 背景色
-
边框
- 风格
- 直接设置CellBorderStyle,默认为BorderStyle.FixedSingle,但这个时候底边框有可能消失,可以考虑改为BorderStyle.Fixed3D
- CellBorderStyle只能设定单元格全部边框线的式样。要单独改变单元格某一边边框式样的话,需要用到DataGridView.AdvancedCellBorderStyle属性。
- 风格
-
高度
-
整体背景色(当窗口变大时,空白处的颜色)
- 是否可编辑、新增、删除
- this.ReadOnly = true;
- this.AllowUserToAddRows = false;
- this.AllowUserToDeleteRows = false;
-
是否可调整列宽、行宽
- this.AllowUserToResizeColumns = false;
this.AllowUserToResizeRows = false;
- this.AllowUserToResizeColumns = false;
-
是否可选中及选中模式
- 是否可多选:this.MultiSelect = false;
- 设置选中模式
- 直接设置SelectionMode属性,包括DataGridViewSelectionMode.FullRowSelect等选项
- 取消首行或首个单元格的默认选中
- 在DataGridView的RowsPrePaint事件处理函数中
private void RowsPrePaintHandler(object sender, DataGridViewRowPrePaintEventArgs e)
{
int index = e.RowIndex; // cancel default selected first row
if (index == )
{
this.Rows[index].Selected = false;
}
}
- 在DataGridView的RowsPrePaint事件处理函数中
相关文章
- 04-11WinForm中DataGridView的使用(一) - 基本使用
- 04-11php – 我应该如何使用LightOpenID将REALM设置为Google url保持一致,以便在我的数据库中存储?
- 04-11使用thrift库中TNonblockingServer非阻塞服务引发的一堆编译问题
- 04-11openedx使用中可能用到的一些资源
- 04-11【转载】 t-SNE使用过程中的一些坑
- 04-11文本框是表单域中最基本的元素。基于文本框的应用有很多,我们这里简单的介绍一个:获取和失去焦点改变样式。我们的需求是当文本框获取焦点后,改变它的颜色,当它失去焦点后,则要恢复到原来的样式,此功能使用户的
- 04-11由一次PasswordBox密码绑定引发的疑问 ---> WPF中的附加属性的定义,以及使用。
- 04-11使用 elementUI 的表单进行查询,表单中只有一个文本框时,回车会自动触发表单的提交事件,导致页面的刷新。
- 04-11使用Unity ShaderGraph实现刮刮乐的刮卡剔除效果,感受一下刮中500万的时刻
- 04-11整理Android XposedHook使用中的一些问题