c# Winform DataGridView 当前单元格失去焦点的有关问题

时间:2021-11-10 19:28:21

最近在做一个项目时遇到了这样一个问题,在一个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;
}
}


这样就解决了上述问题