列的事件主要用来操作列中的数据。比如说:电话号码,数量,金额啊什么的。和大家分享研究成果
首先,要先定义一个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;
}
效果非常不错