一、引言

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控件用法的一些总结的更多相关文章

  1. 关于Datagridview控件用法的一些总结(设置列chicun)

    1. 关于Datagridview控件用法的一些总结:http://www.cnblogs.com/mingjiatang/p/4968049.html

  2. DataGridView控件用法二:常用属性

    通常会设置的DataGridView的属性如下: AllowUserToAddRows - False指示是否向用户显示用于添加行的选项,列标题下面的一行空行将消失.一般让其消失.AllowUserT ...

  3. WinForm开发(1)——DataGridView控件(1)——C# DataGridView控件用法介绍

    DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如需要动态为DataGridView控件添加新行, ...

  4. DataGridView控件用法合集

    1.当前的单元格属性取得.变更 Console.WriteLine(DataGridView1.CurrentCell.Value) Console.WriteLine(DataGridView1.C ...

  5. DataGridView 控件用法(可能不是很全面,因为这是自己常常用到的一些小总结):

    一.DataGridView属性设置 1.我们单击选中行的时候,默认是选择一个单元格,不能选择一整行,我们只需设置DataGridView的属性SelectionMode为FullRowSelect ...

  6. winform DataGridView控件判断滚动条是否滚动到当前已加载的数据行底部 z

    http://www.zuowenjun.cn/post/2015/05/20/162.html 判断 DataGridView控件滚动条是否滚动到当前已加载的数据行底部,其实方法很简单,就是为Dat ...

  7. DataGridView控件

    DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...

  8. DataGridView控件-[引用]

    DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...

  9. DataGridView控件使用大全说明-各种常用操作与高级操作

    DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...

随机推荐

  1. [Swift实际操作]七、常见概念-(9)使用定时组件Timer执行定时任务

    本文将为你演示计时器的使用,使用计时器可以每隔一定时间执行某个函数. 在左侧的项目导航区,打开视图控制器的代码文件:ViewController.swift现在开始编写代码,实现任务定时的功能.定义一 ...

  2. day 64 crm项目(1) admin组件的初识别以及应用

    前情提要: 今天进入项目学习阶段,crm 一个又老又土又实用的入门项目 一:django回顾 二:事前准备 1:首先创建django项目 2:在model中创建数据 from django.db im ...

  3. postgresql子查询优化(提升子查询)

    问题背景 在开发项目过程中,客户要求使用gbase8s数据库(基于informix),简单的分页页面响应很慢.排查发现分页sql是先查询出数据在外面套一层后再取多少条,如果去掉嵌套的一层,直接获取则很 ...

  4. C# 中out,ref,params参数的使用

    C#中有三个高级参数,分别是out,ref,params:   1.out参数 方法使用return 只能返回一个值(一个数值或一个指针值),out参数可以帮助我们在一个方法中返回多个值,不限类型. ...

  5. 使用git工具删除github上的文件或者文件夹

    解决 使用git工具删除github上的文件或者文件夹 当我们需要从github上删除一些我们不需要的文件或者文件夹时,如果通过github来操作的话,将会很麻烦,因为github只允许删除一个仓库, ...

  6. 设置User Agent

    公司的前端要给项目的webview加一个区分,用来区别是iOS端访问.android访问还是在浏览器访问的,说是要加一个User Agent ,前端根据不同信息做适配,和我说来一头雾水,后来经过开发同 ...

  7. Swift 基本数据类型与运算符表达式

    // // main.swift // LessonSwift01 // // Created by lanouhn on 16/1/25. // Copyright © 2016年 齐彦坤. All ...

  8. eclipse web开发插件安装

    eclipse官方网站上下载的标准版Eclipse是没有web开发环境的,为了能够进行web开发,需要安装一些插件.web开发需要的插件有 1 EMF: Downloads | Project hom ...

  9. 简述ARP请求过程(同一子网和不同子网)

    1. 同一子网 主机A在准备构造链路层以太网帧头时,首先根据目的IP去查找ARP表,如果找到对应项,则直接得到目的MAC地址,如果没有查到才执行上面所说的ARP广播请求.这样做是为了最大限度地减少广播 ...

  10. sql 保留两位小数

    select convert(decimal(18,2),1800.2669)