2016-12-23 2 views
0

Ich versuche Wert von bestimmten Spalte von datagridview zu aktualisieren, während darauf Looping durch die DGV_1.CurrentRow.Index bekommen und übergibt es an Verfahren , aber die Aktualisierungs-Zelle ist nur die erste Zelle auf der Säule nicht bewegt zur nächsten Zeile bei datagridviewUpdate Datagridview-Spaltenwert

Ich bemerkte, dass der Index Wert von 1 oder 0 hat also warum? Ich habe versucht, die Anzahl der Zeilen zu verwenden, aber das wird nur die letzte Zeile anstelle des ersten Datensatzes aktualisieren Ich bemerkte, dass passieren wegen dieser Auswahl bleiben beim ersten Datensatz Ich habe versucht, die Auswahl zum nächsten Datensatz zu ändern, während ich Schleifen bin ich kann nicht

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

Wenn Sie 'CurrentRow.Index' verwenden, wird natürlich immer die aktuelle Zeile aktualisiert. Probieren Sie 'int RowNum = OfficeListRow.Index;' – Pikoh

+0

@Pikoh ja Ich habe versucht, die Auswahl zum nächsten Datensatz zu ändern, während ich Schleife bin, aber ich scheitere – sam

+0

Versuchen Sie den Code, den ich Ihnen gesagt habe, und sehen, ob das funktioniert – Pikoh

Antwort

1

Wenn Sie CurrentRow.Index, es würde immer die aktuelle Zeile aktualisieren, offensichtlich. Versuchen Sie int RowNum = OfficeListRow.Index;

Beachten Sie auch, dass die zweite foreach Schleife DGV_FileList ist nicht notwendig.

+0

die zweite foreach Schleife auf einem anderen Datagridview;) die erste Schleife auf DGV_OfficeList und die zweite Schleife auf DGV_FileList bin ich richtig mein Freund? – 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

Sie sollten rowNumber in i ändern – Sasha

+0

Richtig. Sollte vor dem Posten überprüft haben. –

Verwandte Themen