专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WinForm

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

发布时间:2011-06-23 13:52:56 文章来源:www.iduyao.cn 采编人员:星星草
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>

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

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: