Datagridview Darstellung der Zeilen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von freelancer.

    Datagridview Darstellung der Zeilen

    Hallo,

    ich habe ein Problem mit der Darstellung des Inhaltes eines dgv:

    Mein dgv enthält 30 Zeilen (ermittelt mit dgv.RowCount, wovon jedoch nur einge (je nach Größe des dgv-Objektes) angezeigt werden. Ich bekomme auch einen Scrollbalken angezeigt, wenn die eine komplette Zeile nicht mehr in die Größe des dgv passt, aber nur um bis zum Ende der Zeile zu scrollen und nicht bis zum Ende des 30. Eintrages. Ich habe dann eine Kopie des dgv in ein anderes Formular gemacht und dort das dgv mit 30 Zeilen gefüllt und es erscheint ein Scrollbalken, welcher mich durch alle 30 Einträge scrollen lässt.

    Durch die Kopie sollten (hoffentlich) alle Eigenschaften die gleichen sein, aber dann dürten sich die beiden Inhalte doch nicht unterscheiden?????? Gibt es noch "andere" Einstellungen die ich kontrollieren sollte/müsste/könnte?

    Hier meine Routine:

    VB.NET-Quellcode

    1. Public Sub dgvFill()
    2. ' Füllen des DataGridView
    3. Dim ListOfDgvHeader As String() = {"Ranking", "PerformanceClass", "Lastname", "Firstname", "Club", "Discipline"} ' diese keys in dgv füllen
    4. Dim y As Integer = 0
    5. dgvSpielerdatenAnmeldung.Rows.Clear() ' dgv löschen
    6. ' dgv aufbauen
    7. For Each pair In dicParticipant
    8. If dgvSpielerdatenAnmeldung.Top + dgvSpielerdatenAnmeldung.Height + 95 <= Height Then ' maximale Grösse des DataGridViews auf Fentergrösse beschränken
    9. dgvSpielerdatenAnmeldung.Height = dgvSpielerdatenAnmeldung.Height + dgvSpielerdatenAnmeldung.RowTemplate.Height
    10. End If
    11. Dim subpair As KeyValuePair(Of String, String)
    12. dgvSpielerdatenAnmeldung.Rows.Add("", "", "", "", "", "", "") ' leere Zeile hinzufügen
    13. For Each subpair In pair.Value
    14. If ListOfDgvHeader.Contains(subpair.Key) Then
    15. dgvSpielerdatenAnmeldung.Item(0, y).Value = y + 1 ' Wert in Zelle setzen
    16. Select Case subpair.Key
    17. Case ListOfDgvHeader(0)
    18. dgvSpielerdatenAnmeldung.Item(1, y).Value = subpair.Value ' Wert in Zelle setzen
    19. Case ListOfDgvHeader(1)
    20. dgvSpielerdatenAnmeldung.Item(2, y).Value = subpair.Value ' Wert in Zelle setzen
    21. Case ListOfDgvHeader(2)
    22. dgvSpielerdatenAnmeldung.Item(3, y).Value = subpair.Value ' Wert in Zelle setzen
    23. Case ListOfDgvHeader(3)
    24. dgvSpielerdatenAnmeldung.Item(4, y).Value = subpair.Value ' Wert in Zelle setzen
    25. Case ListOfDgvHeader(4)
    26. dgvSpielerdatenAnmeldung.Item(5, y).Value = subpair.Value ' Wert in Zelle setzen
    27. Case ListOfDgvHeader(5)
    28. dgvSpielerdatenAnmeldung.Item(6, y).Value = subpair.Value ' Wert in Zelle setzen
    29. End Select
    30. End If
    31. Next
    32. y += 1
    33. Next
    34. Logging("dgv rowcount: " & dgvSpielerdatenAnmeldung.RowCount)
    35. End Sub


    Hier der Output:

    15.05.2015 13:09:49 dgv rowcount: 30

    Ein Screenshot als Anhang.
    Bilder
    • dgv.jpg

      58,2 kB, 993×376, 64 mal angesehen
    Ich habe gerade festgestellt, dass sich alle 30 Zeilen einblenden, wenn ich das dgv mit einem Click im Columnheader sortieren lasse!!! ?(

    dgvSpielerdatenAnmeldung.Sort(dgvSpielerdatenAnmeldung.Columns(0), System.ComponentModel.ListSortDirection.Ascending) löst also mein Problem!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „freelancer“ ()