下午遇到妖孽的事情,最后发现是NullValue设置成1造成的。
现象是这样的:DataGridView里有一列是数字,为了避免非数字的输入,我就在CellBeginEdit记下值,然后在CellEndEdit里判断是否是数字,不是的话就还原成修改前的值。
测试的时候发现妖怪了,输入其他数字都好,但是输入1后总是被还原成原先的值。比如,先输入2,然后改成1,回车一看又变成2了。。
断点看Value值,居然是null。
最后在DefaultCellStyle这里发现根源了,原来哪个叉叉把NullValue设置成1了,害的我输入1时,取得的Value是null,被当做非法字符还原了。
(估计那位仁兄是想做缺省值,DefaultValue没看到,见这个样子差不多就用上了,害的我折腾1小时)
NullValue清空后(见图一),Value就取到值了
图一