datagridview单元格数据验证问题

lishowlxh 2009-07-14 10:46:55
我的datagridview绑定了数据源
直接在datagridview上编辑数据,如何实现数据验证?
比如我在“部门”列,输入的部门名称必须与key.name同,不同则提示错误信息,单元格值为原来值,


我试过下列程序,但有问题
private void dataGridView2_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (dataGridView2.Columns[e.ColumnIndex].Name == "部门")
{
if (dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString().Trim() != key.name.ToString().Trim())
{

dataGridView2.Rows[e.RowIndex].ErrorText =
"输入格式错误,请输入本部门名称!";
e.Cancel = true;
}

}
}




问题是: 当输入完成后,CellValidating事件触发
而dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value却获取不到输入的值,其值依然为之前的值
这样无法验证输入单元格的值是否是合法的格式
请大虾指教一下,如何验证datagridview的单元格格式
...全文
819 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhiwenyue 2009-07-14
  • 打赏
  • 举报
回复
CellEndEdit 可以获得编辑的数据,CellLeave在编辑状态下不能获得数据。
所以用前者吧 记得不输入数据的时候,离开单元格要判断的。
peterb 2009-07-14
  • 打赏
  • 举报
回复
hanhanmj 2009-07-14
  • 打赏
  • 举报
回复


private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
//...
}

private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
//...
}

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
//...
}


//可在以上事件里写..
surlew 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 lishowlxh 的回复:]
我的datagridview绑定了数据源
直接在datagridview上编辑数据,如何实现数据验证?
比如我在“部门”列,输入的部门名称必须与key.name同,不同则提示错误信息,单元格值为原来值,


我试过下列程序,但有问题
        private void dataGridView2_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            if (dataGridView2.Columns[e.ColumnIndex].Name == "部门")
            {
                if (dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString().Trim() != key.name.ToString().Trim())
                {
                   
                    dataGridView2.Rows[e.RowIndex].ErrorText =
                        "输入格式错误,请输入本部门名称!";
                    e.Cancel = true;
                }

            }
        }


问题是: 当输入完成后,CellValidating事件触发
        而dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value却获取不到输入的值,其值依然为之前的值
        这样无法验证输入单元格的值是否是合法的格式
        请大虾指教一下,如何验证datagridview的单元格格式
[/Quote]

你将代码写在_cellvaluechange事件里面
lishowlxh 2009-07-14
  • 打赏
  • 举报
回复
改了下代码,我写在了CellEndEdit 中
问题解决了

多谢诸位!

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧