我正在尝试更新datagridview
的特定列的值
通过获取DGV_1.CurrentRow.Index
并将其传递给方法来循环它,但更新单元格只是列上的第一个单元格,它不会移动到datagridview
的下一行。
我注意到索引的值为1或0,为什么? 我试图使用行数,但这将只更新最后一行而不是第一个记录。 我注意到,因为那个选择留在了第一个记录。 我在循环时尝试将选择更改为下一条记录但是我失败了。
public void DataGridViewLoop()
{
try
{
foreach (DataGridViewRow OfficeListRow in DGV_OfficeList.Rows)
{
int RowNum = DGV_OfficeList.CurrentRow.Index;
foreach (DataGridViewRow FileListRow in DGV_FileList.Rows)
{
// do something then ...
UpdateDGVcolumn(RowNum);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public void UpdateDGVcolumn(int RowNum)
{
DGV_OfficeList[4, RowNum].Value = "Hello";
}
答案 0 :(得分:1)
如果您使用CurrentRow.Index
,它显然会更新当前行。试试int RowNum = OfficeListRow.Index;
另请注意,第二个foreach
循环DGV_FileList
不是必需的。
答案 1 :(得分:0)
//Loop over rows
for (int i = 0; i < datagridview.Rows.Count; i++)
{
//Use when column names known
datagridview.Rows[i].Cells["columnName"].Value = value;
//Use when column index known
datagridview.Rows[i].Cells[1].Value = value;
}