DataGridView实现数据的快速输入

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#利用DataGridView实现数据的快速输入

网络编程2008-03-11 16:04:03 阅读313 评论0 字号:大中小订阅

在做管理软件时,常常需要表格输入功能。表格输入极大地加快了数据输入,提高了工作效率,当然也提高了软件的竞争性。笔者最近用C#在做一套CRM时,成功地使用C# 2005里面的表格控件DataGridView 实现了表格输入功能,现在就把具体实现与各位分享:

1. 初始化工作

(1) 在Vs 2005 里面新建一个C# WinForm 应用程序:DataGridViewTest

(2) 在窗体Form1上拖一个DataGridView控件:DataGridView1

(3) 在DataGridView1里添加两个列:

Column1:

类型:DataGridViewComboBoxColumn

HeaderText:时间

DataPropertyName:DutyTime

Column2:

类型:DataGridViewTextBoxColumn

HeaderText:时间

DataPropertyName:DutyTime

(4)在Form1类中添加两个私有属性:

private DataTable m_Table;//输入组合框控件的下拉数据

private DataTable m_DataTable;//与表格绑定的DataTable,即用户输入的最终数据

(5)在Form1类里面定义一个结构体

public struct MyRowData

{

public MyRowData(int no, string enDay, string cnDay)

{

No = no;

EnDay = enDay;

CnDay = cnDay;

}

public int No;

public string EnDay;

public string CnDay;

}

(6) 在Form1的load事件Form1_Load(object sender, EventArgs e) 加上以下初始化代码:

this.dataGridView1.AllowUserToAddRows = true;

this.dataGridView1.AllowUserToDeleteRows = true;

this.dataGridView1.AutoGenerateColumns = false;

DataColumn dc1, dc2, dc3

dc1 = new DataColumn("No", typeof(int));

dc2 = new DataColumn("EnDay", typeof(string));

dc3 = new DataColumn("CnDay", typeof(string));

m_Table.Columns.Clear();

m_Table.Columns.AddRange(new DataColumn[] { dc1, dc2, dc3 });

MyRowData[] Datas = new MyRowData[7]{

new MyRowData( 1,"Monday","星期一"),

new MyRowData( 2,"Tuesday","星期二"),

new MyRowData( 3,"Wednesday","星期三" ),

new MyRowData( 4,"Thursday","星期四" ),

new MyRowData( 5, "Friday","星期五"),

new MyRowData( 6,"Saturday","星期六"),

new MyRowData( 7,"Sunday","星期日")

};

this.m_Table.Rows.Clear();

foreach (MyRowData iData in Datas)

{

this.m_Table.Rows.Add(iData.No, iData.EnDay, Day);

}

DataColumn dataDc1, dataDc2;

dataDc1 = new DataColumn("DutyTime", typeof(int));

dataDc2 = new DataColumn("DutyPerson", typeof(string));

m_DataTable.Columns.Clear();

m_DataTable.Columns.AddRange(new DataColumn[] { dataDc1, dataDc2});

m_DataTable.Rows.Clear();

Column1.DataSource = this.m_Table;

Column1.DisplayMember = "CnDay";

Column1.ValueMember = "No";

this.dataGridView1.DataSource = m_DataTable;

2.消息处理(核心)

protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) //激活回车键

{

int WM_KEYDOWN = 256;

int WM_SYSKEYDOWN = 260;

相关文档
最新文档