日期:2014-05-17  浏览次数:20794 次

DataGridView控件设计问题
想实现一个类似数据库视图工具的功能,我做了3个DataGridview,其中dgv_CodeValue控件有3个事件,分别是Leave,CellValidate和DataError,我在CellValidate事件中做的输入值类型验证,在Leave事件中做的记录dgv_CodeValue单元格值的功能,现在问题是当我输入完数值后,触发Leave事件时,如果输入的数值不符合定义的类型就会报错,我的设计有问题么?这个怎么改?
------最佳解决方案--------------------
不是,是你的事件写错了,你是不是要验证你输入的类型是否符合标准
应该在CEll_endEdit 事件中写你的事件啊,
------其他解决方案--------------------
这你问谁呢,能满足你的要求就行
------其他解决方案--------------------
我 也没有看明白.
------其他解决方案--------------------
引用:
这你问谁呢,能满足你的要求就行

问题是现在触发leave事件后不会再去判断cell值的类型,后面会出错,我问我这么设计是导致这个问题的原因么?该怎么修改?
------其他解决方案--------------------
引用:
不是,是你的事件写错了,你是不是要验证你输入的类型是否符合标准
应该在CEll_endEdit 事件中写你的事件啊,

CellEndEdit事件中没有e.Cancel属性啊,也没有e.FormattedValue
------其他解决方案--------------------
现在的问题是,我设置Cell的值类型为Int16时,我输入ffff,Leave事件每次都会抛出异常“输入的字符串格式不正确,不能在Value中存储<ffff>,所需类型为Int16”
------其他解决方案--------------------
引用:
引用:

不是,是你的事件写错了,你是不是要验证你输入的类型是否符合标准
应该在CEll_endEdit 事件中写你的事件啊,

CellEndEdit事件中没有e.Cancel属性啊,也没有e.FormattedValue

我说的是在这个事件中限制datagridview的单元格内容
------其他解决方案--------------------
引用:
引用:
引用:

不是,是你的事件写错了,你是不是要验证你输入的类型是否符合标准
应该在CEll_endEdit 事件中写你的事件啊,

CellEndEdit事件中没有e.Cancel属性啊,也没有e.FormattedValue

我说的是在这个事件中限制datagridview的单元格内容

我是想判断如果类型不符,就让焦点回到单元格
------其他解决方案--------------------
引用:
我 也没有看明白.

现在问题是这样的,如果修改了cell值焦点移到其他位置没问题,如果我修改完cell值去点击退出按钮就会报错:格式不正确,怎么让我点按钮之前也触发一次cellvalidating或cellendedit事件
------其他解决方案--------------------
我一直没搞明白CellValidate事件触发的条件是什么,经常莫名其妙的就触发这个事件。