在DataGridView中,如何在该行中获取预编辑的单元格值?

时间:2014-12-29 00:05:26

标签: c# datagridview

我创建了一个DataRow并将其设置为等于DataSet的行,该行是网格的等效当前行。我想隔离原始的预编辑值,这样如果用户取消该行的编辑,我就可以恢复到网格中的这些值。但网格似乎绑定到DataSet,因此它不会隔离原始的预编辑单元格值。我编码所以它只在CellBeginEdit事件中创建一次DataRow。但每次编辑单元格时,DataRow都会更改并反映新编辑的值。我尝试使用DataGridViewRow但它也随着每个单元格编辑自动更改,而不是在创建时作为行的独立快照。这是我的代码:

private void gridDB_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

{

string test;
//DataGridViewRow currRow= new DataGridViewRow(); This kept updating with each edit   


//rowSet is public bool and currRow is public DataRow
if (rowSet != true) 
{    
    currRow = dSet.Tables[0].Rows[gridDB.CurrentRow.Index];    
    rowSet = true;
}

test = "In CellBeginEdit " + currRow[0].ToString() + "  " +
       currRow[1].ToString() + "  " +
       currRow[2].ToString() + "  " +
       currRow[3].ToString() + "  " +
       currRow[4].ToString();

MessageBox.Show(test);
}

每次来到此测试字符串时,它都会显示每个新编辑的单元格编辑。这告诉我currRow不是创建时DataSet行的静态快照。

请告诉我为什么这不起作用,并告诉我实现这一目标的最佳方法。

谢谢!

Valhalla

0 个答案:

没有答案