2017-08-16 4 views
0

Es gibt 3 Zeilen in Datagridview. Ich sehe das nach runnig anwendung. Wenn ich RowsAdded Ereignis verwende, zeigt es nur 0,1 in der Konsole. Es sollte 0,1,2 sein, warum?Warum gibt RowsAdded nicht alle Zeilen zurück?

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
{ 
    Console.WriteLine(e.RowIndex); 
} 

Ich verwende dataGridView1_RowsAdded Zellendaten zu ändern. Es funktioniert für alle Zeilen letzten Zeile mit Ausnahme von:

enter image description here

Sie können, dass die letzten beiden Zeilen sehen geändert wurden (Datum). Der letzte war nicht

Minimal Beispiel:

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
{ 
    Console.WriteLine("ok"); 

    string birthday = dataGridView1.Rows[e.RowIndex] 
     .Cells["dataGridViewTextBoxColumn42"].Value.ToString(); 
    DateTime dt = DateTime 
     .ParseExact(birthday, "dd/mm/yyyy", CultureInfo.InvariantCulture); 

    birthday = dt.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture); 
    dataGridView1.Rows[e.RowIndex] 
     .Cells["dataGridViewTextBoxColumn42"].Value = birthday; 
} 

Antwort

0

Wenn die Eigenschaft DatagridviewAllowUserToAddRows auf true gesetzt, Die letzte Zeile ist für das Einsetzen und A @Fruchtzwerg erwähnte

+0

Es ist falsch, wirklich – OPV

+0

Ja, Sie können es versuchen. –

+0

Es ist kein Grund. Eigentum 'AllowUserToAddRows' ist bereits in falschen – OPV

1

Das Verhalten am MSDN dokumentiert ist:

Die RowsAdded Ereignis tritt auf, wenn Zeilen in einem Datagridview-Steuerelement hinzugefügt werden. Wenn der Benutzer eine neue Zeile mit der Zeile für neue Datensätze hinzufügt, entspricht der RowIndex-Wert im Handler für dieses Ereignis dem Index der neuen Position der Zeile für neue Datensätze, der um eins größer ist als die gerade hinzugefügte Zeile. Wenn Sie Zeilen jedoch programmgesteuert hinzufügen, ist der RowIndex-Wert der Index der ersten hinzugefügten Zeile.

RowIndex:

Ruft den Index der ersten Reihe hinzugefügt.

Beachten Sie, dass die letzte Zeile neue Daten einfügen soll. Dies bedeutet, dass diese Zeile nicht zur Quelle hinzugefügt wird, bis der Benutzer gültige Daten eingefügt hat. An dieser Stelle wird eine neue Zeile zum Einfügen von Daten angezeigt.

+0

Okay, wo dann kann ich Einfügen von Daten zu formatieren? – OPV

+0

Werfen Sie einen Blick auf https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/specify-default-values-for-new-rows-in-the-datagrid – Fruchtzwerg

+0

Ich habe nichts gefunden by link – OPV

Verwandte Themen