我有一个DataGridView,用户在其中输入一个值。当他进入时,新行被添加,用户可以输入他的新值。
当用户输入名称时,会不断添加更多行。当用户输入所有名称后,他点击一个按钮,我需要使用在网格视图中输入的每个名称做一些事情。
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[0].Value != null)
{
string user = row.Cells[0].Value.ToString();
// do something using the string user
}
}
这是我用来读取每一行的代码。我面临的问题是v
row.Cells[0].Value
似乎无法抓住最后一个活跃的行。
例如。如果用户刚刚输入了" Tim" ,他被迫前往下一个空行,以确保蒂姆也被上述代码读取。如果他在键入后仍然将光标保留在Tim单元格中,则上述代码不能捕获" Tim" 。
我该如何解决这个问题?我更愿意在不使用任何CellChange
事件或任何事件的情况下执行此操作。我将完整行选为Selection Mode
。
答案 0 :(得分:1)
根据此link,您需要致电dataGridView1.EndEdit()
。请注意,如果不能关闭此编辑(即单元格中的数据不满足所有输入验证标准),此方法将抛出异常。