首页新闻找找看学习计划

C# Winform DataGridView单元格值的提交。

0
悬赏园豆:10 [已关闭问题] 关闭于 2015-12-09 12:34

DataGridView中输入值,输入完最后一列,获取不到该列的值,而其它列可以获得。原因是我输入完最后一列的值时,没点击DataGridView区域内部,而直接点击其它区域,这个时候在CellValueChanged事件中,e.ColumnIndex就没获取到该列的index,因而获取不到这一列的输入值。请问有可以解决的大神吗?

问题补充:

大丽丽Yeah!的主页 大丽丽Yeah! | 初学一级 | 园豆:145
提问于:2015-12-08 10:17
< >
分享
所有回答(3)
0

CellLeave事件里进行提交吧。

Firen | 园豆:5483 (大侠五级) | 2015-12-08 10:25

不对啊,我刚才试了一下,还是不行!没触发这个事件

支持(0) 反对(0) 大丽丽Yeah! | 园豆:145 (初学一级) | 2015-12-08 10:29

我上传了图片,点击保存的时候,没触发这个事件!

支持(0) 反对(0) 大丽丽Yeah! | 园豆:145 (初学一级) | 2015-12-08 10:30

@大丽丽Yeah!: 你可以发我代码让我看看。

支持(0) 反对(0) Firen | 园豆:5483 (大侠五级) | 2015-12-08 10:32

@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;
                }
}

这个时候就会弹出错误,就没法保存了!

支持(0) 反对(0) 大丽丽Yeah! | 园豆:145 (初学一级) | 2015-12-08 10:35

@大丽丽Yeah!: 请问,可以解决吗?

支持(0) 反对(0) 大丽丽Yeah! | 园豆:145 (初学一级) | 2015-12-09 10:55
0

再你写的获取其值的代码之前,找个地方,调用dgv.EndEdit()就可以了。可以用事件触发,或者直接硬编码。

虾。 | 园豆:257 (菜鸟二级) | 2015-12-09 02:56

谢谢!可能我们的情况不一样,解决方式也不一样!

支持(0) 反对(0) 大丽丽Yeah! | 园豆:145 (初学一级) | 2015-12-09 12:34
0

取值的时候,取的是FormattedValue值而非Value。

例:dataGridView1.Rows[b].Cells[0].FormattedValue

大丽丽Yeah! | 园豆:145 (初学一级) | 2015-12-09 12:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册