2 回答
TA贡献1804条经验 获得超2个赞
在具有格式的单元格中输入数据时,您应该考虑以下事实:
单元格的值保持不变,格式用于显示目的。
在单元格中输入数据时,您应该输入没有任何格式的数据,例如具有
0%
asFormat
,如果您键入50%
值,则它无效,但50
有效并且将显示为50%
。输入数据时,如果不更改单元格中的任何内容,则
DataGridView.IsCurrentCellDirty
返回false
,否则返回true
。e.FormattedValue
始终包含单元格中显示的文本。
了解上述事实,我相信您有足够的信息来完成您正在尝试做的事情。
例如,知道单元格不脏,您可以返回。否则您需要检查是否e.FormattedValue
可以转换为ValueType
列。请记住,50%
在使单元格变脏的情况下键入是无效数据。
TA贡献1827条经验 获得超4个赞
尝试替换e.FormattedValue
为decimal.Parse(e.FormattedValue.TrimEnd(new char[] { '%', ' ' })).ToString()
,并在末尾添加一个 .ToString()dataGridView1.SelectedCells[0].Value
所以它是这样的dataGridView1.SelectedCells[0].Value.ToString()
。
支票应阅读 if (dataGridView1.SelectedCells[0].Value.ToString() == decimal.Parse(e.FormattedValue.TrimEnd(new char[] { '%', ' ' })).ToString())
- 2 回答
- 0 关注
- 173 浏览
添加回答
举报