//注册绑定事件 private void dgvBidFile_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { DataGridView dataGridView = (DataGridView)sender; int columnIndex = dataGridView.CurrentCell.ColumnIndex;
string columnName = dataGridView.Columns[columnIndex].Name; //获取某一列的名称 if (columnName== "colId"||columnName=="colName"||columnName=="colAge") { e.Control.KeyPress += new KeyPressEventHandler(TextBoxDec_KeyPress); } if (dataGridView.CurrentCell.GetType().Name == "DataGridViewComboBoxCell") { bidFileId = Convert.ToInt32(dataGridView.CurrentRow.Cells[this.colBidFileId.Index].Value); ComboBox comboBox = (ComboBox)e.Control; comboBox.SelectedIndexChanged += new EventHandler(this.comboBox_SelectedIndexChanged); } } //只输入数字判定事件。该事件是手动添加的绑定事件 private void TextBoxDec_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar != 8 && !Char.IsDigit(e.KeyChar) && e.KeyChar != '.') { e.Handled = true; } } //下拉框更改事件,该事件是手动添加的绑定事件 private void comboBox_SelectedIndexChanged(object sender, EventArgs e) { ComboBox comboBox = (ComboBox)sender; //接下来获取下来框中的内容... //comboBox.Text为当前选定的下拉框的内容 } //普通文本框更改事件 private void dgvBidFile_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == this.colRemark.Index) { //colRemark为数据绑定列 //发生什么事... } }
//默认值,添加新行时才会触发。dgv必须选中启用添加,并且是用户鼠标进入带*的新行才会触发 private void dgvBidFile_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e) { e.Row.Cells["coId"].Value = 1; e.Row.Cells["colName"].Value = "你好"; }