DataGridView中输入值,输入完最后一列,获取不到该列的值,而其它列可以获得。原因是我输入完最后一列的值时,没点击DataGridView区域内部,而直接点击其它区域,这个时候在CellValueChanged事件中,e.ColumnIndex就没获取到该列的index,因而获取不到这一列的输入值。请问有可以解决的大神吗?
CellLeave事件里进行提交吧。
不对啊,我刚才试了一下,还是不行!没触发这个事件
我上传了图片,点击保存的时候,没触发这个事件!
@大丽丽Yeah!: 你可以发我代码让我看看。
@Firen:
这是保存的代码:
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells[1].Value == null || dataGridView1.Rows[i].Cells[2].Value == null || dataGridView1.Rows[i].Cells[3].Value == null
|| dataGridView1.Rows[i].Cells[4].Value == null || dataGridView1.Rows[i].Cells[5].Value == null || dataGridView1.Rows[i].Cells[7].Value == null
|| dataGridView1.Rows[i].Cells[8].Value == null || dataGridView1.Rows[i].Cells[9].Value == null)
{
MessageBox.Show("第 " + j + " 行配置不完整,请配置完整!");
return;
}
}
这个时候就会弹出错误,就没法保存了!
@大丽丽Yeah!: 请问,可以解决吗?
再你写的获取其值的代码之前,找个地方,调用dgv.EndEdit()就可以了。可以用事件触发,或者直接硬编码。
谢谢!可能我们的情况不一样,解决方式也不一样!
取值的时候,取的是FormattedValue值而非Value。
例:dataGridView1.Rows[b].Cells[0].FormattedValue