我有一个包含两列的 DataGridView。单击第一列中的单元格时,将显示一个 OpenFileDialog,当我选择一个文件时,第二列中的单元格值将设置为所选文件名。这是代码:
private void dataGridView1_CellContentClick(
object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
SelectFile(e.RowIndex);
}
}
private void SelectFile(int rowIndex)
{
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
dataGridView1.Rows[rowIndex].Cells[1].Value =
openFileDialog.FileName;
}
}
这可行,但我希望在设置单元格值时添加一个新行。当我手动编辑单元格时会发生这种情况,该行进入“编辑”状态并且在下面添加了一个新行。当我以编程方式设置单元格值时,我希望发生同样的情况。
[编辑]
当我的表单第一次显示时,DataGridView 是空的,唯一显示的行是带有(* 符号 - IsNewRow 为真)的行。当我手动编辑该行中的单元格时,它会进入编辑状态(铅笔符号)并添加一个新的空行。当我使用上面的代码时,这不会发生。该行保持为 IsNewRow(* 号)并且未添加新行。
最佳答案
使用此代码,您可以做您想做的事。我出于同样的原因使用它:
myGrid.NotifyCurrentCellDirty(true);
此答案的来源: Make new row dirty programmatically and insert a new row after it in DataGridView
关于c# - 设置 DataGridView 单元格值并添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6128555/