datagridview .get 单元格值而不离开行

datagridview .get cell value without leaving row

我有一个 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 单元格中,则上述代码不会捕获 "Tim"。

我该如何解决这个问题?我更愿意在不使用任何 CellChange 事件或任何事件的情况下执行此操作。我有整行 select 作为 Selection Mode.

根据这个 link,您需要调用 dataGridView1.EndEdit()。请注意,如果无法关闭此编辑(即单元格中的数据不满足所有输入验证条件),此方法将抛出异常。