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 关注
- 228 浏览
添加回答
举报
