vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Fortgeschrittene
Re: DataGridview mit Image-Spalte 
Autor: Manfred X
Datum: 23.03.16 13:13

Vielleicht so ...
Public Class frmCellPaintingDemo
 
    Dim WithEvents dgv As New DataGridView With {.Parent = Me}
    Dim dt As New DataTable
 
    Dim IconA As New Icon("....ico") 'Iconfile ageben
    Dim iconG As New Icon("....ico")
 
 
 
    Private Sub frmCellPaintingDemo_Load(sender As System.Object, _
                                    e As System.EventArgs) Handles MyBase.Load
 
        'Testdaten 
        dt.Columns.Add("status")
        dt.Columns.Add("ID", GetType(Integer))
        dt.Rows.Add("A", 1) : dt.Rows.Add("G", 2) : dt.Rows.Add("A", 3)
 
        dgv.DataSource = dt
 
        dgv.Columns("status").MinimumWidth = 50
 
        For i As Integer = 0 To dgv.Rows.Count - 1
            dgv.Rows(i).MinimumHeight = IconA.Height
        Next i
    End Sub
 
 
    Private Sub dgv_CellPainting(sender As Object, _
        e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
        Handles dgv.CellPainting
 
        If e.RowIndex < 0 Or e.ColumnIndex < 0 Then Exit Sub
 
        If dgv.Columns(e.ColumnIndex).Name = "status" Then
            'Ist die Zelle selektiert ? 
            Dim selected As Boolean = _
            (e.State And DataGridViewElementStates.Selected) = _
            DataGridViewElementStates.Selected
 
            e.PaintBackground(e.CellBounds, selected)
 
            Dim ico As Icon
            If Not e.Value Is Nothing Then
                'Textfarbe einrichten
                Dim col As Color
                If selected Then col = Color.White Else col = Color.Black
 
                Using br As New SolidBrush(col)
                    'Text ausgeben A/G
                    e.Graphics.DrawString _
                        (e.Value.ToString & " |", dgv.Font, br, _
                         e.CellBounds.X + 2, e.CellBounds.Y)
 
                    'Passendes Icon zeichnen 
                    If e.Value.ToString = "A" Then ico = IconA Else ico = iconG
                    e.Graphics.DrawIcon _
                        (ico, New Rectangle(e.CellBounds.X + 20, _
                         e.CellBounds.Y, ico.Width, ico.Height))
                End Using
            End If
 
            e.Handled = True 'Diese Zelle ist gezeichnet 
        End If
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataGridview mit Image-Spalte3.236spatzimatzi22.03.16 17:09
Re: DataGridview mit Image-Spalte2.369spatzimatzi22.03.16 17:18
Re: DataGridview mit Image-Spalte2.360Manfred X23.03.16 11:15
Re: DataGridview mit Image-Spalte2.384spatzimatzi23.03.16 12:05
Re: DataGridview mit Image-Spalte2.437Manfred X23.03.16 13:13

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-2025 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