更新DataGridView列值

时间:2016-12-23 10:42:28

标签: c# datagridview

我正在尝试更新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";
}

2 个答案:

答案 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;   
 }