最近在做一个项目时遇到了这样一个问题,在一个DataGridview中的某一个单元格输入了内容,点击窗体上的Button按钮(输入的光标还在那个输入的单元格中,没有失去焦点),获取到的那个单元格的值不是刚才输入的值,还是输入前的值,现将解决方法整理如下:
在DataGridView的EditingControlShowing事件中:
private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { TextBox EditingTB = e.Control as TextBox; // 获取编辑用的文本框的引用 EditingTB.TextChanged += EditingTB_TextChanged; // 动态注册事件 }
// 当子控件的内容更改时发生 private void EditingTB_TextChanged(object sender, EventArgs e) { if (this.dataGridView.CurrentCell.ColumnIndex == 9) { this.dataGridView.CurrentCell.Value = (sender as TextBox).Text; } }
转 : https://blog.csdn.net/esunshine1985/article/details/53938991