无法在cellendedit之前从datagridview单元读取值

时间:2017-05-21 20:37:12

标签: c# datagridview

嘿伙计们, 我有这个代码。即使我认为它没有问题

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    foreach (DataGridViewCell cell in row.Cells)
    {
        Console.WriteLine(cell.Value.ToString());
     }
}

但是出于一些愚蠢的原因,它没有显示我没有结束编辑的单元格的价值。是否有任何财产可以让我这样做?

我有一张Datagridview的表单。我将“aaa”写入第一个单元格和第一行,将“bbb”写入第二个单元格,然后关闭表单。 OnClose event执行上面的代码,输出为“aaa”。事情是,如果在关闭我单击的表单之前,例如第二行中的第一个单元格(这意味着我在第一行的第二个单元格上触发EndCellEdit事件),就不会发生这种情况。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

DataGridView更改单元格的值时,CellValueChangedEvent仅在离开单元格时被触发(例如,如果您单击案例中的另一个单元格)。更改值然后只关闭表单时不会触发事件。对于表单结束活动中的变通方法,您可以从DataGridView移除焦点,这会导致CellValueChangedEvent触发。您可以将焦点设置为标签或表单的任何其他控件。