Laden...

DataGridView - Hinzufügen von weiteren Zeilen wenn Anwender neue Zeile im DGV hinzufügt

Letzter Beitrag vor 12 Jahren 5 Posts 2.679 Views
DataGridView - Hinzufügen von weiteren Zeilen wenn Anwender neue Zeile im DGV hinzufügt

Hallo zusammen,

ich habe erst angefangen mich mit C# zu beschäftigen und habe ein Problem beim Hinzufügen von Zeilen einer Tabelle.

Folgende Situation:
Auf einer WinForm habe ich ein Datagridview mit 2 Spalten (erste = Labels, zweite = Text vom Anwender). In der ersten Spalte sollen immer feste Texte eingefügt werden die dem Anwender einen Hinweis über das geben was in der zweiten Spalte eingetragen werden muss. Das sind insgesamt 9 Zeilen.

Beim Laden der Form füge ich dem DataGridView die entspr. Zeilen hinzu. Passt wunderbar. Wenn der Anwender bei geöffneter Form eine neue Zeile hinzufügt, sollen wieder die neuen Zeilen mit den Labels automatisch hinzugefügt werden.
Dazu hatte ich mir gedacht, dass ich das "CellEnter" Event oder "RowEnter" Event nutze. Allerdings funktioniert das leider nicht.

Wenn ich die Zeilen mit Hilfe eines ENumerators hinzufügen will kommt folgende Fehlermeldung: > Fehlermeldung:

Fehler! Pparation is not valid due to the current state of the object

Wenn ich die Zeilen über Rows.Add hinzufügen möchte kommt die Fehlermeldung: > Fehlermeldung:

Fehler! Operation cannot be performed in this event handler.

Könnt ihr mir bitte helfen?

Ziel ist wie gesagt: Wenn der Anwender in der Tabelle eine neue Zeile hinzufügt sollen automatisch 9 Zeilen mit den entsprechenden Labels in Spalte 1 hinzugefügt werden.

Vielen Dank schonmal und Grüße

Evtl mal das NewRowNeeded- oder das RowsAdded-Ereignis prüfen? Hab es zwar selbst nicht ausprobiert, aber die MSDN hilft da ja schnell weiter.

Ansonsten könntest du dir auch überlegen, ob du das DataGridView nicht an ein DataTable bindest, das im Hintergrund verwaltet wird. Damit lassen sich auch später die Auswertungen recht komfortabel gestalten.

Hallo bredator,

vielen Dank für die schnelle Antwort. Die beiden Event-Prozeduren wollen nicht richtig, weil sie sich immer selbst aufrufen wenn eine neue Zeile hinzufgefügt wird --> Endlosschleife 🙁

Mit dem Dataset bin ich noch am kämpfen was das Anlegen der Folgezeilen angeht.
Form-Load trägt alle gewünschten Zeilen ein. Soweit kein Problem.
Aber wie muss ich das machen, um bei einer neuen Zeile, die der Anwender hinzufügt wieder nicht nur die eine Zeile hinzuzufügen sondern alle 9 mit den gewünschten Labels?

Halo herbivore,

danke für den Link. Hab das ganze nun gelöst bekommen. 😃

Vielen Dank und Grüße