我正在验证未绑定的dataGridView控件中的单元格值,但我不喜欢这种行为。
当在单元格中输入无效值时,我无法离开该单元格,就可以了。当我从单元格中清除无效数据并将其留空或空白时,我仍然无法离开单元格并且不喜欢它。即使我按Escape键撤消我在单元格中输入的无效数据,在输入该特定单元格中的有效值之前,也无法移动到dataGridView中的任何其他单元格。这意味着我无法取消行的输入,例如缺少单列值。
要离开单元格,我必须键入至少0(零),但我不想这样做,我希望能够说好,让我只是进入整个记录,或者将单元格值重置为空,突出显示,移动到另一个单元格,然后稍后返回。
private void dataGridViewSales_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
switch (this.dataGridViewSales.Columns[e.ColumnIndex].Name)
{
case "Qty":
{
decimal qty;
if (!decimal.TryParse(e.FormattedValue.ToString(), out qty))
{
e.Cancel = true;
this.dataGridViewSales.Rows[e.RowIndex].ErrorText = "The quantity sold must be a numeric value";
dataGridViewSales.EditingControl.BackColor = Color.Red;
}
}
break;
}
}
答案 0 :(得分:1)
谢谢,这样做了
if (this.dataGridViewSales.Rows[e.RowIndex].IsNewRow || string.IsNullOrEmpty(e.FormattedValue.ToString()))
{
return;
}
else
{
e.Cancel = true;
}
答案 1 :(得分:0)
if (!string.IsNullOrEmpty(e.FormattedValue.ToString()) &&
!decimal.TryParse(e.FormattedValue.ToString(), out qty))
{
e.Cancel = true;
...
}