Tipp 0207 DataGridView per Code befüllen
Autor/Einsender:
Datum:
  Thomas Becker
25.01.2011
Entwicklungsumgebung:   VB.Net 2005
Framework:   2.0
Ein DataGridView kann auch komplett ungebunden verwendet werden. Der per Code aufgebaute und auskommentierte Tipp gibt auch Einblick in die Verwendung verschiedener Spaltentypen.
 
Public Class Form1

  Private Sub Form1_Load(ByVal sender As Object, ByVal e As _
     EventArgs) Handles MyBase.Load
    'Einstellungen vornehmen
    With DataGridView1
      .AllowUserToAddRows = False ' User kann keine Zeilen hinzuf.
      .RowHeadersVisible = False ' Überheader ausblenden
      .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
    End With
  End Sub

  Private Sub Button1_Click(ByVal sender As Object, ByVal e As _
     EventArgs) Handles Button1.Click
    ' Manuelles Füllen #1

    TextBox1.Clear()

    With DataGridView1
      .Columns.Clear()
      'Spalten fürs DGV erstellen
      .Columns.Add("Spalte1", "Jahreszeit")
      .Columns.Add("Spalte2", "Temperatur")
      'DGV füllen
      .Rows.Add("Sommer")
      .Rows(0).Cells(1).Value = "Warm"
      .Rows.Add("Winter")
      .Rows(1).Cells(1).Value = "Kalt"
    End With
  End Sub

  Private Sub Button2_Click(ByVal sender As Object, ByVal e As _
      EventArgs) Handles Button2.Click
    ' Manuelles Füllen #2

    TextBox1.Clear()

    With DataGridView1
      .Columns.Clear()

      ' 2 Spalten TextBoxColumn
      .Columns.Add("Spalte1", "Jahreszeit")
      .Columns.Add("Spalte2", "Temperatur")

      ' Spalte CheckBoxColumn
      Dim ChkBxCol As New DataGridViewCheckBoxColumn
      ChkBxCol.HeaderText = "Warme Kleidung"
      .Columns.Add(ChkBxCol)

      ' Spalte ImageColumn
      Dim ImgCol As New DataGridViewImageColumn
      ImgCol.HeaderText = "Bilder"
      .Columns.Add(ImgCol)

      ' Spalte LinkColumn
      Dim LnkCol As New DataGridViewLinkColumn
      LnkCol.HeaderText = "Link"
      .Columns.Add(LnkCol)

      ' Spalte ComboBoxColumn mit Einträgen
      Dim ComboCol As New DataGridViewComboBoxColumn
      DataGridView1.Columns.Add(ComboCol)

      With ComboCol
        .HeaderText = "Combo"
        .Items.Add("Beachball")
        .Items.Add("Strandkorb")
        .Items.Add("Ski")
        .Items.Add("Schlitten")
      End With

      ' Zeilen füllen (jede Zeile in einem Rutsch)
      .Rows.Add("Sommer", "Warm", False, Me.Icon, "vb-fun.de", _
       "Beachball")
      .Rows.Add("Winter", "Kalt", True, Me.Icon, "vb-fun.de", _
       "Ski")

      'So könnte man z.B. nach Spalte 0 sortieren:
      '.Sort(.Columns(0), _
        System.ComponentModel.ListSortDirection.Ascending)
    End With
  End Sub

  Private Sub Button5_Click(ByVal sender As Object, ByVal e As _
     EventArgs) Handles Button3.Click
    ' Beenden
    Me.Close()
  End Sub

  Private Sub DataGridView1_CellClick(ByVal sender As Object, _
     ByVal e As DataGridViewCellEventArgs) _
     Handles DataGridView1.CellClick
    ' Es wurde auf eine Zelle geklickt

    If e.RowIndex = -1 Then Exit Sub
    TextBox1.Clear()
    ' Spaltentyp in TextBox schreiben
    TextBox1.Text = _
    DataGridView1.Columns(e.ColumnIndex).GetType.ToString & _
    vbNewLine
    ' Zellinhalt zur TextBox anfügen
    Dim CellContent As String = _
    DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value._
    ToString
    TextBox1.AppendText(CellContent)
  End Sub
End Class
 
Weitere Links zum Thema
 

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (13 kB) Downloads bisher: [ 551 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Dienstag, 24. Januar 2012