Winform控件之DataGridView数据控件(一)

一,DataGridView控件概述

DataGridView控件提高了一种强大而灵活的以表格形式显示数据的方式。用户可以使用 DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图。

扩展 DataGridView控件有很种形式,例如可以采用编程方式指定自己的排序算法来创建自己的单元格类型,通过选择一些属性,可以轻松地自定义DataGridView控件的外观;可以将许多类型的数据存储区用做数据源;也可以在没有绑定数据源的情况下操作DataGridView控件。

DataGridView控件部分常用属性:

属性 描述
AllowUserToAddRows 是否显示添加行的选项
AllowUserToDeleteRows 是否允许用户删除行
AllowUserToOrderColumns 是否允许通过手动对列重新定位
AllowUserToResizeColumns 是否可以调整列的大小
AllowUesrToResizeRows 是否可以调整行的大小
AutoGenerateColumns 在设置DataSource或DataMember属性时是否自动创建列
AutoScrollOffest 在ScrollControlIntoView中将控件滚动到何处
BackColor 设置控件的背景色
BackgroundColor 设置DataGridView的背景色
BackgroundImage 设置在控件中显示的背景图像
ColumnCount 取显示的列数
Columns 取列的集合
CurrentRow 获取包含当前单元格的行
Item 获取或设置位于指定行和指定列交叉处的单元格
Name 设置控件的名称
NewRowIndex 获取新纪录所在行的索引
ReadOnly 控制是否可以编辑单元格
Rows 获取行的集合
ScrollBars 设置要显示的滚动条的类型
SelectedCells 取选定的单元格的集合
SelectRows 取选定的行的集合
SortOrder 设置是否能进行排序
Visible 设置是否显示该控件

二,DataGridView控件绑定数据源

DataGridView控件英语显示来自对中外部数据源中的数据,用户可以在此控件中添加建行和列,并可以填充数据。如要让DataGridView控件显示数据库中的数据,只需要将此控件绑定到调用数据库的数据源上,则可以自动基于数据源的架构生成列。

要将DataGridView控件绑定到数据源上,就要用到DataGridView控件的DataSource方法。其绑定格式为:

DataGridView.DataSource=数据源;

实例:演示DataGridView控件的DataSource方法的使用

(1)创建一个窗体应用程序,在窗体中添加一个DataGridView控件

(2)创建一个方法createSource,返回DataTable,用于生成数据源

(3)在窗体中加载事件中与DataGridView控件进行绑定

完整的代码为:

<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            dgv.DataSource=createSouce();//绑定数据源
        }

        private DataTable createSouce()//创建数据源
        {
            DataTable dt = new DataTable();//创建DataTable对象
            dt.Columns.Add("列一",System.Type.GetType("System.Int32"));
            DataColumn dc = new DataColumn("列二", System.Type.GetType("System.String"));
            dt.Columns.Add(dc);//添加1字符串列
            for (int i = 0; i < 20; i++)
            {
                DataRow dr = dt.NewRow();//创建1行
                dr[0] = i;//添加第一列数据
                dr[1] = Convert.ToString((i + 80) / 3);//添加第二列数据
                dt.Rows.Add(dr);//把行加入到;列表中
            }
            return dt;
        }

    }
}
</span>

运行窗体程序的结果为:

如果要让DataGridView控件显示数据库中的数据,只需要把数据库中的数据填充到数据集DataSet对象,然后再通过DataGridView控件的DataSource方法与其绑定。

三,获取DataGridView控件中的当前单元格

获取DataGridView控件中的当前单元格,是通过DataGridView控件的Rows属性和Column属性的索引来取得的,它们的索引都是从0开始的。

实例:将上一个实例作为基础,添加双击DataGridView控件中的当前单元格的Click事件,以弹出其对应单元格的数据。代码为:

      <span style="font-size:18px;"> private void dgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            string text = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
            MessageBox.Show(text);
        }</span>

基于上一道实例完整的代码为:

<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            dgv.DataSource=createSouce();//绑定数据源
        }

        private DataTable createSouce()//创建数据源
        {
            DataTable dt = new DataTable();//创建DataTable对象
            dt.Columns.Add("列一",System.Type.GetType("System.Int32"));
            DataColumn dc = new DataColumn("列二", System.Type.GetType("System.String"));
            dt.Columns.Add(dc);//添加1字符串列
            for (int i = 0; i < 20; i++)
            {
                DataRow dr = dt.NewRow();//创建1行
                dr[0] = i;//添加第一列数据
                dr[1] = Convert.ToString((i + 80) / 3);//添加第二列数据
                dt.Rows.Add(dr);//把行加入到;列表中
            }
            return dt;
        }

        private void dgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            string text = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
            MessageBox.Show(text);
        }

    }
}</span>

随意双击一个单元格运行窗体程序的结果为:

时间: 2024-10-25 13:45:12

Winform控件之DataGridView数据控件(一)的相关文章

Winform控件之DataGridView数据控件显示问题

最近在做同类的信息记录管理系统时遇到了DataGridView数据控件的显示问题,可能是2015年的上半年没有深入 学习C#开发的原因,这几天重新搬出来开发,首先遇到的问题就是动态绑定数据显示的问题,琢磨了很久,在网上查 了也不少,但是对自己的数据列表显示问题还是没有做到最佳.最后解决的方法还是自己一个尝试出来的,虽然不是 很好,但最起码遇到的问题都解决了,顿时轻松了许多. 一默认状态的绑定 也就是没有设置DataGridView控件数据列表中的列的设置,其他的属性该设置还需设置.我们来看一下实

Winform系列——好用的DataGridview过滤控件(表格的高级搜索功能)

上一篇 Winform系列——好看的DataGridView折叠控件 中主要介绍了DataGridview的表格多级折叠功能.这章主要介绍下最近封装的另一个DataGridview表格高级过滤的功能.此功能也是参照codeproject上面的源码改写的,代码可能有源码的内容,也有本人改写过的,所以看上去可能有点乱.废话不多说,上图: 1.一般的DataGridview效果: 2.增加了列上面右键效果: 3.升序和降序就没什么说的了,看看点击过滤的效果吧: 4.取消某一个字段过滤的方式有两种: 5

【机房重构】——使用DataGridView控件轻松显示数据(一)

在刚刚敲机房的时候遇到的问题就是DataGridView控件显示数据.好在被我解决了,好开心.下面分三部分来写这篇博客. 一.操作步骤 (1)新建一个WinForm窗体,在窗体中添加DataGridView控件,选中控件,点击控件上边缘的小三角,选择数据源,点击添加项目数据源. (2)选择数据源类型,此处应选数据库类型 (3)选择你的机房收费系统的数据连接,或新建连接,点击下一步. (4)根据你想要在窗体上显示的数据,选择数据库对象,包括要显示的列名后点击完成. (5)DataGridView控

WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)

开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1) 简单数据绑定 简单的数据绑定是将用户控件的某一个属性绑定至某一个类型实例上的某一属性.采用如下形式进行绑定:引用控件.DataBindings.Add("控件属性", 实例对象, "属性名", true); 2) 复杂数据绑定 复杂的数据绑定是将一个以列表为基础的用户控件(例如:ComboBox.ListBox.ErrorProvider.DataGridView等控件)绑

Winform开发常用控件之DataGridView的简单数据绑定——自动绑定

DataGridView控件可谓是Winform开发的重点控件,对于数据的呈现和操作非常方便,DataGridView可谓是既简单又复杂.简单在于其已经集成了很多方法,复杂在于可以使用其实现复杂的数据呈现和操作. 本文是入门级培训,先介绍DataGridView的简单应用,复杂的应用在后续的博文中会一一呈上. DataGridView主要是呈现数据和数据操作的,那自然离不开数据. 首先是数据绑定,DataGridView的数据源可以是DataSet.DataTable或Ilist等,至于Data

在DevExpress程序中使用Winform分页控件直接录入数据并保存

一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数据,这种对于字段比较少,而且内容相对比较简单的情况下,效率是比较高的一种输入方式.本篇随笔主要介绍在DevExpress程序中使用GridView直接录入数据并保存的实现,以及使用Winform分页控件来进行数据直接录入的实现操作. 1.在GridView上展示数据 在GridView上展示数据,只

数据绑定和数据网格视图(DataGridView)控件

数据绑定和数据网格视图(DataGridView)控件 数据网格视图控件,不像我们前面看到的控件,它可以显示多个列,但是,数据必须格式化,使数据网格知道要显示哪一列.有两种实现方法:一个是把数据网格视图绑定到数据表(DataTable),另一个是把网格到绑定对象列表,对象有许多属性,不同的属性就成为网格的列. 下面的例子是一种简单的解决方案,绑定到数据集(DataSet): open System open System.Collections.Generic open System.Confi

winfrom中DataGridView绑定数据控件中DataGridViewCheckBoxColumn怎么选中

for (int i = 0; i < this.dataGridView1.Rows.Count; i++) { this.dataGridView1.Rows[i].Cells["CheckBoxCulums"].Value = this.checkBox1.Checked; } winfrom中DataGridView绑定数据控件中DataGridViewCheckBoxColumn怎么选中,布布扣,bubuko.com

winform 自定义分页控件 及DataGridview数据绑定

分页效果如上图所示,用到的控件均为基本控件 ,其方法如下 右击项目-添加-新建项 选择用户控件 然后在用户控件中拖入所需要的Label,Button,Text 用户控件全部代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; usin