vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
DataGridview: HeaderText an ComboBox übergeben 
Autor: spatzimatzi
Datum: 14.09.17 11:52

Hallo,
habe ein Problem mit dem DataGridView

Ich möchte die HeaderTexte Spalte um Spalte einer ComboBox übergeben.
Beim Auslesen der Daten wollte ich die Sortierung über den DisplayIndex ermöglichen
Leider ist der DisplayIndex identisch mit dem Index

Warum sind die Felder Col.Index und Col.DisplayIndex gleich und welchen anderen Weg kann ich einschlagen?

In dem Beispiel-Programm sollen nur die sichtbaren Felder ausgegeben werden.
Programm dient nur zur Kontrolle des Inhaltes
      ...
      For Each Col As DataGridViewColumn In dgv.Columns
        If Col.Visible = True Then
          Me.cbSpaltenname.Items.Add(Col.HeaderText)
 
          Debug.Print(Col.HeaderText.ToString & " " & _
                      Col.Index.ToString & " " & _
                      Col.DisplayIndex.ToString & " " & _
                      Col.Name.ToString)
 
 
        End If
      Next
      ...
Bin für jeden Tipp dankbar!

Viele Grüße
spatzimatzi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridview: HeaderText an ComboBox übergeben 
Autor: Manfred X
Datum: 14.09.17 14:25

[I]Beim Auslesen der Daten, wollte ich die Sortierung über den DisplayIndex ermöglichen.
Leider ist der DisplayIndex identisch mit dem Index.
Warum sind die Felder Col.Index und Col.DisplayIndex gleich und
welchen anderen Weg kann ich einschlagen?[/I]

Ich verstehe .... nix!
In welcher Reihenfolge sollen die Spaltenbezeichner in die Combobox
eingetragen werden? Welches Kriterium / Welche Variablen?
Aktuelle Sichtbarkeit der Spalte in der Benutzer-Oberfläche?
Visible-Eigenschaft der Spalte?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridview: HeaderText an ComboBox übergeben 
Autor: spatzimatzi
Datum: 14.09.17 15:02

Hallo Manfred X,
schade, dass ich mich nicht richtig ausgedrückt habe.
Werd's nochmal probieren

Mein Ziel ist es, die HeaderTexte der einzelnen Spalten des DataGridView auszulesen.
Dabei soll die Reihenfolge der HeaderText mit den Spaltenbeschreibung in der GUI übereinstimmen.
Nach meiner Vorstellung habe ich 2 Möglichkeiten

1. Ich lese die Columns-Einträge des DataGridView wie im Beispiel oder
2. aber die Zellen der Spaltenbeschriftung werden verarbeitet.

Ich habe mich für Punkt 1 entschieden

Führen ich nun das Beispiel aus, dann kann ich mir alle Eigenschaften wie
Name
HeaderText
Index
Display
ausgeben lassen. Leider werden die Einträge sortiert nach den Bezeichnungen der HeaderTexte sortiert. Das ist jedoch nicht mein Ziel.

Also sortiere ich nach dem DisplayIndex, dachte ich mir. Aber DisplayIndex ist mit dem Index identisch und bringt mir nicht das erhoffte Ergebnis!

Meine Fragen:
Wieso ist DisplayIndex und Index identisch
(Hinweis: Nach Binden an die DataTable werden die Spalten nachträglich positioniert)
Gibt es noch weitere Varianten zum Lesen der Spalte-Beschreibung (HeaderText)?

Hoffe, die Beschreibung ist jetzt verständlicher.

Viele Grüße
spatzimatzi
Die
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridview: HeaderText an ComboBox übergeben 
Autor: Manfred X
Datum: 14.09.17 15:34

So etwas ????
Public Class frmGridHeaderCombo
 
    Dim cboHT As New ComboBox With {.Parent = Me}
 
    Dim dgv As New DataGridView With {.Parent = Me, .Top = 40}
 
 
    Private Sub frmGridHeaderCombo_Load(sender As System.Object, _
                         e As System.EventArgs) Handles MyBase.Load
 
        'Spalten erstellen
        Dim dt As New DataTable
        For i As Integer = 0 To 19
            dt.Columns.Add("Col_" & CStr(i + 1))
        Next i
 
        'Bindung an das Grid
        dgv.DataSource = dt
 
        'Anzeige-Reihung umkehren
        For i As Integer = dgv.Columns.Count - 1 To 0 Step -1
            dgv.Columns(i).DisplayIndex = 19 - i
        Next i
 
        'Headertexte gemäß Display-Reihung in Combobox eintragen 
        For i As Integer = 0 To dgv.Columns.Count - 1
            For j As Integer = 0 To dgv.Columns.Count - 1
                If dgv.Columns(j).DisplayIndex = i Then
                    cboHT.Items.Add(dgv.Columns(j).HeaderText)
                    Exit For
                End If
            Next j
        Next i
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel