2016-12-23 5 views
0

Я пытаюсь обновить значение определенного столбца datagridview в то время как зацикливания на него, получая DGV_1.CurrentRow.Index и передать его методу , но клетка обновления только первая ячейка в колонке она не двигается к следующей строке: datagridviewобновления значение столбца 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

Если вы используете 'CurrentRow.Index', он всегда будет обновлять текущую строку, очевидно. Попробуйте 'int RowNum = OfficeListRow.Index;' – Pikoh

+0

@Pikoh yes Я попытался изменить выбор на следующую запись, пока я зацикливаюсь, но я не получаю – sam

+0

Попробуйте код, который я вам сказал, и посмотрим, работает ли это – Pikoh

ответ

1

Если вы используете CurrentRow.Index, он всегда будет обновлять текущую строку, очевидно. Попробуйте int RowNum = OfficeListRow.Index;

Также обратите внимание, что второй цикл DGV_FileList не требуется.

+0

вторая петля foreach на другом datagridview;) frist one loop на DGV_OfficeList и второй цикл на DGV_FileList Я прав, мой друг? – sam

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; 
} 
+1

Вы должны изменить rowNumber на i – Sasha

+0

Исправить. Должен был проверить перед публикацией. –

Смежные вопросы