日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

發布時間:2023/12/15 C# 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#利用DataGridView实现数据的快速输入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在做管理軟件時,常常需要表格輸入功能。表格輸入極大地加快了數據輸入,提高了工作效率,當然也提高了軟件的競爭性。筆者最近用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, iData.CnDay);?
}?

   ?
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;?

bool IsDataGridView1 = false;?
if (this.ActiveControl == this.dataGridView1)?
{?
IsDataGridView1 = true;?
}?
else?
{?
if (this.ActiveControl is IDataGridViewEditingControl)?
{?
if( (this.ActiveControl as IDataGridViewEditingControl).EditingControlDataGridView == this.dataGridView1)?
{?
IsDataGridView1 = true;?
}?
}?
}?

if (IsDataGridView1) //是否處于DataGridView1 上?
{?
if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)?
{?
switch (keyData)?
{?
case Keys.Delete:?
if (this.dataGridView1.CurrentCell != null?
&& this.dataGridView1.CurrentCell.RowIndex < this.m_DataTable.Rows.Count)?
{?
this.m_DataTable.Rows[this.dataGridView1.CurrentCell.RowIndex].Delete();?
this.m_DataTable.AcceptChanges();?
}?
break;?
case Keys.Enter:?
if (this.dataGridView1.CurrentCell is DataGridViewComboBoxCell?
| | this.dataGridView1.CurrentCell is DataGridViewTextBoxCell?
)//處于輸入格?
{?
// SendKeys.Send("{F4}");?
if (this.ActiveControl is System.Windows.Forms.DataGridViewComboBoxEditingControl?
| | this.ActiveControl is System.Windows.Forms.DataGridViewTextBoxEditingControl?
)?
{?
SendKeys.Send("{Tab}");?
}?
else//非輸入狀態,將轉入輸入狀態?
{?
if (this.dataGridView1.CurrentCell is DataGridViewTextBoxCell)//快捷按鍵F2,進入編輯狀態?
{?
SendKeys.Send("{F2}");?
}?
else //combobox,快捷按鍵F4,彈出下拉框?
{?
SendKeys.Send("{F4}");?

}?
}?
}?
else//處于非輸入格?
{?
SendKeys.Send("{Tab}");?
}?
return true;?
break;?
}?
}?
}?
return false;?
}?
?

總結

以上是生活随笔為你收集整理的C#利用DataGridView实现数据的快速输入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。