DataGridView实现数据的快速输入
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;