下面主要介紹研究成果:.Net 2.0中的鍵盤事件。
.Net 2.0中的鍵盤事件,研究了好久,只發現這兩種 :一種是DataGridVIEw鍵盤事件,另一種是列鍵盤事件。
第一種、DataGridView中鍵盤事件處理方法。此方法的使用與一般控件的方法相同。操作也比較簡單。這種在DataGirdVIEw中的事件用來操作比如刪除一列啦,添加一列啦,還有插入一列啦什麼的。鍵盤事件基本就三個:KeyDown,KeyPress,KeyUp三個事件,這裡我只介紹一個,其他的都是相同的。簡單介紹如下:
注:以下示例語句的DataGridVIEw名為dgvDetails.
委托方法:
this.dgvDetails.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.dgvDetails_KeyPress);
方法:
private void dgvDetails_KeyPress(object sender, KeyPressEventArgs e)
{
//想怎麼操作在這時處理
}
第二種、就是DataGridView中列的事件,這種事件放在DataGridVIEw中,開始本人用KeyPress來控件輸入的數據為數字,其他的輸入不進去。怎麼搞都不行。不好意思,本人系統沒有Help。因軟件是網友送的,沒送Help。摸了好久,才發現有這麼個方法來實現。列的事件主要用來操作列中的數據。比如說:電話號碼,數量,金額啊什麼的。和大家分享研究成果。
首先,要先定義一個Class級的變量(放在Form內,可別放在外面),
private DataGridVIEwTextBoxEditingControl EditingControl;
其次,添加EditingControlShowing事件委托
this.dgvDetails.EditingControlShowing += new System.Windows.Forms.DataGridVIEwEditingControlShowingEventHandler(this.dgvDetails_EditingControlShowing);
第三步,定義委托的方法:
private void dgvDetails_EditingControlShowing(object sender, DataGridVIEwEditingControlShowingEventArgs e)
{
EditingControl = (DataGridVIEwTextBoxEditingControl)e.Control;
EditingControl.KeyPress += new KeyPressEventHandler(EditingControl_KeyPress);
}
注:加粗的地方很重要,主要是針對列的事件,這裡才是正題。
第四步,定義列的委托方法啦,引用以其他控件引用完全相同。
private void EditingControl_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) ) e.Handled = true;
}
哈哈,本人一試,可以了,搞定,睡覺!