我的 DataGridView 带有带有此格式属性的列 dataGridView1.Columns["RABAT"].DefaultCellStyle.Format = "0\\%";
所以当我进入细胞并退出它时,我的dataGridView1_CellValidating事件会触发。在那里我有一个简单的检查,我检查该单元格的旧值是否等于新值,如果是,则不要继续执行代码,它看起来像这样
if (dataGridView1.SelectedCells[0].Value == e.FormattedValue)
return;
现在的问题是,由于dataGridView1.SelectedCells[0].Value我返回的格式属性,10但是当e.FormattedValue我返回10%并通过此检查时,因为这两个值不相同。
我能做的(并知道如何做)是从中删除除数字之外的所有内容e.FormattedValue,然后进行比较,因为在这种情况下,此列中只有整数,但对于将来的代码,我如何从中删除格式样式e.FormattedValue?
我已经这样做了,但这是暂时的,因为我有很多列并且不想每次都创建其他方法来摆脱格式。
switch (dataGridView1.Columns[e.ColumnIndex].Name)
{
case "KOLICINA":
if (dataGridView1.SelectedCells[0].Value == e.FormattedValue)
return;
dataGridView1.Rows[e.RowIndex].Cells["KOLICINA"].Value = e.FormattedValue;
dataGridView1.Rows[e.RowIndex].Cells["PRODAJNAVREDNOSTSAPOPUSTOM"].Value = Convert.ToDouble(dataGridView1.Rows[e.RowIndex].Cells["KOLICINA"].Value) * Convert.ToDouble(dataGridView1.Rows[e.RowIndex].Cells["PRODAJNACENASAPOPUSTOM"].Value);
dataGridView1.Rows[e.RowIndex].Cells["PRODAJNAVREDNOST"].Value = Convert.ToDouble(dataGridView1.Rows[e.RowIndex].Cells["KOLICINA"].Value) * Convert.ToDouble(dataGridView1.Rows[e.RowIndex].Cells["PRODAJNACENA"].Value);
PresaberiStavku(dataGridView1.Rows[e.RowIndex], false);
break;
case "RABAT":
if (Convert.ToDouble(dataGridView1.SelectedCells[0].Value) == Convert.ToDouble(M.String.LeaveOnlyNumbers(e.FormattedValue.ToString())))
return;
}
慕婉清6462132
GCT1015
相关分类