Zeile am Ende einer DataGridview hinzufügen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ChaosBernd.

    Zeile am Ende einer DataGridview hinzufügen

    Hallo,

    ich hab eine gefüllte DataGridView und möchte nun über

    VB.NET-Quellcode

    1. DataGridView.Rows.Add()
    eine neue Zeile hinzufügen. Die Zeile wird jedoch oben eingefügt und nicht am Ende wie ich es möchte.
    Gibt es da was zum Einstellen, dass die Zeile am Ende eingefügt wird? Wär ja ziemlich unschön wenn ich die ganzen vorhanden Einträge um 1 nach oben kopieren müsste.
    Danke im Voraus!

    Gruß Marco
    Du musst die Zeile angeben in der die Daten reinsollen.

    VB.NET-Quellcode

    1. Private Sub DataGridFuellen()
    2. DataGridView1.Rows.Clear() ' DataGrid bereinigen
    3. For Each Adress As String In ListeKontakKarten
    4. Dim RowCount As Integer = DataGridView1.RowCount - 1 ' hier zählst du die vorhanden Eintrräge
    5. DataGridView1.Rows.Add() '
    6. DataGridView1.BeginEdit(CBool(RowCount))
    7. DataGridView1.Rows(RowCount).Cells(0).Value = BS_Kontakte.Kontakt_LesenUndAndern("SpitzName", "", Adress, "Lesen").ToString
    8. DataGridView1.Rows(RowCount).Cells(1).Value = BS_Kontakte.Kontakt_LesenUndAndern("eMail", "", Adress, "Lesen").ToString
    9. DataGridView1.Rows(RowCount).Cells(2).Value = BS_Kontakte.Kontakt_LesenUndAndern("Vorname", "", Adress, "Lesen").ToString
    10. DataGridView1.Rows(RowCount).Cells(3).Value = BS_Kontakte.Kontakt_LesenUndAndern("Nachname", "", Adress, "Lesen").ToString
    11. DataGridView1.Rows(RowCount).Cells(4).Value = Adress ' Add Pfad und Datei Name
    12. Next
    13. DataGridView1.Update()
    14. DataGridView1.EndEdit()
    15. End Sub


    das ist nur ein Beispiel. nun müsste dir aber klar werden wie es gehen soll.
    Das mit dem Befüllen ist mir ja klar.
    Ich habe ja Daten in der DGV stehen und möchte am Ende eine neue Zeile einfügen.
    Komischerweise wird die Zeile aber am Anfang eingefügt.
    In der DGV sind 3 Spalten vordefiniert.

    VB.NET-Quellcode

    1. If (length = 0) Then
    2. DataGridView.Rows(0).Cells(0).Value = name
    3. DataGridView.Rows(0).Cells(1).Value = value
    4. DataGridView.Rows(0).Cells(2).Value = unit
    5. Else
    6. DataGridView.Rows.Add()
    7. DataGridView.Rows(length).Cells(0).Value = name
    8. DataGridView.Rows(length).Cells(1).Value = value
    9. DataGridView.Rows(length).Cells(2).Value = unit
    10. End If


    Wenn lenght = 0 ist, soll in die 0. Zeile geschrieben werden. Diese ist vorhanden durch die vordefinierten Spalten. Wenn length größer 0 ist soll eine Zeile am Ende eingefügt werden und die Daten sollen geschrieben werden.
    Das Programm läuft auch richtig ab aber ich weiss halt nicht warum, die Zeile oben eingefügt wird.

    Gruß
    Marco

    ChaosBernd schrieb:

    Dim RowCount As Integer = DataGridView1.RowCount - 1 ' hier zählst du die vorhanden Eintrräge

    Dann Plus 1 und

    VB.NET-Quellcode

    1. DataGridView.Rows.Add()
    2. DataGridView.Rows(lRowCount).Cells(0).Value = name
    3. DataGridView.Rows(RowCount).Cells(1).Value = value
    4. DataGridView.Rows(RowCount).Cells(2).Value = unit
    Vielen Danke für deine Bemühungen aber anscheinend drücke ich mich unverständlich aus.

    Nochmal von vorne:

    Ich habe eine DGV. Zur Laufzeit werden 3 Spalten erstellt. Dies klappt auch.
    Dann ist ja schon eine Reihe vorhanden und in diese Reihe schreibe ich dann meine Daten.
    Werden nun Daten hinzugefügt, lösche ich mit dem Befehl Clear alle Reihen bis auf die 1. und die DGV wird komplett neu beschrieben.
    Beim 1. Datensatz schreibe ich die Daten einfach in die vorhandene Reihe. Für den 2. Datensatz muss ich ja über Add eine Reihe hinzufügen. Diese Reihe wird aber oberhalb der 1. eingefügt und nicht unterhalb. Wenn ich zum Beispiel 4 Datensätze hinzufüge sieht meine DGV so aus:


    Datensatz 2
    Datensatz 3
    Datensatz 4
    Datensatz 1


    Ich hoffe, mein Problem ist nun verständlicher.