关于Datagridview控件用法的一些总结
一、引言
Datagridview控件在winform开发中还是比较常用,一般的数据库系统都会使用它,但是想要友好的展示数据,形成良好的用户界面,那么就要对c#库中默认的Datagridview设置进行更改,以达到友好界面的需求。
下面就介绍一下Datagridview常见的用法。
二、Datagridview设置
1、列设置
a)、列的宽度铺满这个控件
设置如下:把AutoSizeColumnsMode=Fill;//可以在属性窗口中设置
b)、列名居中
代码如下:
this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //设置表头的格式(居中显示)
c)、禁止编辑某列
代码如下:
//禁止某一些列编辑
dataGridView1.ReadOnly = false;
foreach (DataGridViewColumn c in dataGridView1.Columns)
{
if (c.Index != )
c.ReadOnly = true;
}
d)、禁止列点击排序
代码如下:
//不能被排序
foreach (DataGridViewColumn c in dataGridView1.Columns)
{
c.SortMode = DataGridViewColumnSortMode.NotSortable;
}
e)、设置列的字体
this.dataGridView1.RowsDefaultCellStyle.Font = new Font("宋体", );
f)、设置列宽
this.dataGridView1.Columns[].Width = ; this.dataGridView1.Columns[].Width = ;
g)、设置列显示模式
需要将第一列的单元格的内容全部显示出来,代码如下:
this.dataGridView1.Columns[].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells ;
h)、禁止最左边的空列头显示
this.dgvSymbol.RowHeadersVisible = false;
2、行设置
a)、设置字体
代码如下:
this.dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("仿宋", ,FontStyle.Bold );
b)、改变默认的选中的颜色
代码如下:
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Black;
dataGridView1.DefaultCellStyle.SelectionForeColor = Color.White;
c)、允许每个单元格多行显示
代码如下:
this.dataGridView1 .DefaultCellStyle.WrapMode = DataGridViewTriState.True;
d)、设置每个单元格居中
代码如下:
foreach (DataGridViewColumn item in this.dataGridView1.Columns)
{
item.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置每个单元格的格式(居中)
}
e)、清除选择的单元格
代码如下:
foreach (DataGridViewCell c in this.dataGridView1.SelectedCells)
{
c.Selected = false;
}
3、在每行的左边为每行添加一个从1开始递增的序号
效果如下:
首先为Datagridview控件添加一个单元格绘制的事件RowPostPaint,然后在该事件下面添加一些绘制的代码就行了,代码如下:
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
SolidBrush b = new SolidBrush(this.dataGridView1.RowHeadersDefaultCellStyle.ForeColor);
e.Graphics.DrawString((e.RowIndex + ).ToString(System.Globalization.CultureInfo.CurrentUICulture), this.dataGridView1.DefaultCellStyle.Font, b, e.RowBounds.Location.X + , e.RowBounds.Location.Y + );
e.Graphics.FillRectangle(Brushes.White , new Rectangle(new Point(e.RowBounds.Location.X + , e.RowBounds.Location.Y + ), new Size(, )));//隐藏每行前面的图标
}
4、如何为列添加其他类型的列(而不是DataGridViewTextBoxColumn)并且绑定相应的数据源
一般的将数据查询所获取的表格DataTable对象绑定到Datagridview表格,我们只写一句代码:this.dataGridView1.DataSource=dtQueryResult;这样做虽然方便,但是却不人性化,显示的结果都是显示在DataGridViewTextBoxColumn中,而且列的标题都是查询中数据库的字段,并不是我们想要的显示的字段,那么如何根据数据库查询的表格数据对Datagridview的列的类型及其显示进行名称进行定制呢?
假设从数据库中查询出来的数据列有(id,eventMark,timeBlock,typeName,isComplete(bit))四个字段。
显示的要求
- 1、id不让显示
- 2、eventMark显示名称为:时间、timeBlock显示名称为:时间段、typeName显示名称为:类型名称、isComplete显示名称为:状态
- 2、typeName的类型为DataGridViewComboBoxColumn类型,并绑定数据源,isComplete列显示的类型为DataGridViewCheckBoxColumn类型。
根据设置代码如下:
第一步还是不变,依然是绑定数据源this.dataGridView1.DataSource=dtQueryResult。
this.dataGridView1.AutoGenerateColumns = false;
DataGridViewTextBoxColumn dtEvent = new DataGridViewTextBoxColumn();
dtEvent.DataPropertyName = "eventMark";
dtEvent.HeaderText = "事件";
dataGridView1.Columns.Add(dtEvent);
//添加timeBlock项
DataGridViewTextBoxColumn dtTime = new DataGridViewTextBoxColumn();
dtTime.DataPropertyName = "timeBlock";
dtTime.HeaderText = "时间段";
dataGridView1.Columns.Add(dtTime);
//添加typeName项
DataGridViewComboBoxColumn dtType = new DataGridViewComboBoxColumn();
dtType.DataPropertyName = "typeName";
dtType.HeaderText = "类型";
dtType.DataSource = TypeNames.GetTypeNames();//绑定combox显示的数据源
dataGridView1.Columns.Add(dtType);
//添加isComplete项
DataGridViewCheckBoxColumn dtCheck = new DataGridViewCheckBoxColumn();
dtCheck.DataPropertyName = "isComplete";
dtCheck.HeaderText = "状态";
dataGridView1.Columns.Add(dtCheck);
三、总结
Datagridview的用法远远不及上述说的那么一些,还有很多实用的功能值得我们的去探索,包括他的重绘、事件处理等等。还可以根据自己的项目的需求可以对Datagridview控件进行定制,可以实现各种你意想不到的显示效果。
尽等你去发掘··············
关于Datagridview控件用法的一些总结的更多相关文章
- 关于Datagridview控件用法的一些总结(设置列chicun)
1. 关于Datagridview控件用法的一些总结:http://www.cnblogs.com/mingjiatang/p/4968049.html
- DataGridView控件用法二:常用属性
通常会设置的DataGridView的属性如下: AllowUserToAddRows - False指示是否向用户显示用于添加行的选项,列标题下面的一行空行将消失.一般让其消失.AllowUserT ...
- WinForm开发(1)——DataGridView控件(1)——C# DataGridView控件用法介绍
DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如需要动态为DataGridView控件添加新行, ...
- DataGridView控件用法合集
1.当前的单元格属性取得.变更 Console.WriteLine(DataGridView1.CurrentCell.Value) Console.WriteLine(DataGridView1.C ...
- DataGridView 控件用法(可能不是很全面,因为这是自己常常用到的一些小总结):
一.DataGridView属性设置 1.我们单击选中行的时候,默认是选择一个单元格,不能选择一整行,我们只需设置DataGridView的属性SelectionMode为FullRowSelect ...
- winform DataGridView控件判断滚动条是否滚动到当前已加载的数据行底部 z
http://www.zuowenjun.cn/post/2015/05/20/162.html 判断 DataGridView控件滚动条是否滚动到当前已加载的数据行底部,其实方法很简单,就是为Dat ...
- DataGridView控件
DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...
- DataGridView控件-[引用]
DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...
- DataGridView控件使用大全说明-各种常用操作与高级操作
DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...
随机推荐
- Web安全学习图径——系列课程推荐
本文作者:i春秋作家 大哥哥团长 说到Web安全必须要了解Web方面的一些基础知识做为铺垫的去的去学习这门技术,因为不是人人都可以直接先渗透在进行编程等方面学习的.所以为了更好的入门的Web安全必须要 ...
- echart 遇到的点
1,图表随着外部container变化而变化: window.onresize = myChart.resize (拿着resize在api文档中搜就看到了)
- 读懂Netty的高性能架构之道
Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用 ...
- xp——极限编程的几个方法
最近阅读<Head First Java>一书时,看到极限编程(XP)的概念,觉得很有趣,摘抄下来以备后期继续学习. 极限编程(XP)是一种新型的软件开发方法论.他的构想是结合了许多种&q ...
- WEB-INFO 目录
WEB-INF下面的内容都是只能由服务器级别才能访问,客户端并不能访问. 转发就是服务器级别,浏览器的地址不会变,因为,客户端发送一个请求,服务器受理之后,发现要请求内容还要再去别的请求,那么转发就是 ...
- c#调用R
R.NET使用文档 介绍 本页面涉及R.NET1.5.13. 1.5.13版本在功能上等同于1.5.12,但可作为一个包在NuGet.org上获得. R.NET使.NET框架与R统计语言在同一进程进行 ...
- 剑指offer三十之连续子数组的最大和
一.题目 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...
- 再学Java 之 foreach循环
从Java 5 之后,Java提供了一种新的循环:foreach循环,这种循环遍历数组和集合更加简洁. foreach循环语法格式如下: for ( type variableName : array ...
- ActiveMQ学习--002--Topic消息例子程序
一.非持久的Topic消息示例 注意 此种方式消费者只能接收到 消费者启动之后,发送者发送的消息. 发送者 package com.lhy.mq.helloworld; import java.uti ...
- android瓦片地图技术研究
最近根据公司项目需求,需要制作场馆的室内图并且实现根据rfid信号的自动定位功能,研究了好久找到了一个目前为止还算好用的瓦片地图工具——TileView. github连接:https://githu ...