vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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

ADO.NET / Datenbanken
Re: Bestimmte Zellen im Datagrid farbig darstellen 
Autor: Chief
Datum: 22.03.05 15:53

Hi Steve,

Ich habe mal diesen Code in mein Projekt eingefügt und der funktioniert wunderbar
Hiermit werden im Datagrid die "bezahlt" und die "nicht bezahlt" Spalten je nach Status farbig dargestellt.
D.h. bezahlt --> hellblau, nicht bezahlt -->hellrot

[u]Die Klasse:

#Region "Bezahlt/nicht Bezahltzellen nach Inhalt färben"
' eigener Spaltenstil, um Zellen nach Inhalt einzufärben
Public Class clsBezahltZellenFarbig
    Inherits DataGridBoolColumn
 
    Private _type As Boolean
 
    Public Sub New(ByVal type As Boolean)
        MyBase.New()
        _type = type
        Me.AllowNull = False
    End Sub
 
    ' Überschreiben der Paint-Methode, um entsprechend dem Zellinhalt
    ' ein neues farbliches Aussehen der Anzeige zu erzeugen
    Protected Overloads Overrides Sub Paint(ByVal g As Graphics, _
          ByVal bounds As Rectangle, ByVal source As CurrencyManager, _
          ByVal rowNum As Integer, ByVal backBrush As Brush, _
          ByVal foreBrush As Brush, ByVal alignToRight As Boolean)
        Try
            ' Objekt mit dem aktuellen Zellinhalt bereitstellen
            Dim o As Object = Me.GetColumnValueAtRow(source, rowNum)
            ' Objektinhalt prüfen: Achtung! Prüfung muss bei jedem Feldinhalt 
            ' fehlerfrei arbeiten. 
            If o Is System.DBNull.Value Then
                backBrush = Brushes.Yellow
            Else
                If CType(o, Boolean) Then
                    If _type Then
                        ' Die Spalte „bezahlt“ soll hellgrün markiert sein wenn 
                        ' bezahlt gecheckt ist.
                        backBrush = Brushes.LightBlue
                    Else
                        ' Die Spalte „nicht bezahlt“ soll hellrot markiert sein 
                        ' wenn nicht bezahlt gecheckt ist.
                        backBrush = Brushes.LightCoral
                    End If
                Else
                    backBrush = Brushes.White
                End If
            End If
            ' Basismethode mit ggf. geänderten Farben aufrufen
            MyBase.Paint(g, bounds, source, rowNum, backBrush, foreBrush, _
              alignToRight)
        Catch ex As Exception
            Trace.WriteLine(ex.ToString)
        End Try
    End Sub
End Class
#End Region
[u]In Form3 wo das Datagrid ist:

Private Sub Spaltendarstellung()
        ' neuer SpaltenStil
        Dim newCS As DataGridColumnStyle
        ' neuen TableStyle erstellen
        Dim myTS As New DataGridTableStyle
        ' dem TableStyle einen Namen geben
        myTS.MappingName = "Tab1"
        ' DataTable aus der DataSource des DataGrid holen
        'Dim myDT As DataTable = CType(DataGrid1.DataSource, 
        ' DataSet1.DB2005_1DataTable)
        Dim myDT As DataTable = CType(DataGrid1.DataSource, DataView).Table
        ' Für jede Spalte einen ColumnStyle erstellen
        For i As Integer = 1 To myDT.Columns.Count - 1
            ' neuen eigenen ColumnStyle erstellen
            If myDT.Columns(i).DataType Is GetType(Boolean) Then
                If myDT.Columns(i).ColumnName = "bezahlt" Or myDT.Columns( _
                  i).ColumnName = "nicht bezahlt" Then
                    newCS = New clsBezahltZellenFarbig(myDT.Columns( _
                    i).ColumnName = "bezahlt")
                Else
                    newCS = New DataGridBoolColumn
                End If
            Else
                newCS = New DataGridTextBoxColumn
            End If
            With newCS
                ' demn ColumnStyle Namen der Spalte aus der DataTable zuordnen
                .MappingName = myDT.Columns(i).ColumnName
                ' Spaltennamen als Überschrift
                .HeaderText = myDT.Columns(i).ColumnName
                ' neuen ColumnStyle dem TableStyle zuordnen
                myTS.GridColumnStyles.Add(newCS)
            End With
        Next
 
        ' alten TableStyle entfernen
        Dim oldTS As DataGridTableStyle = DataGrid1.TableStyles( _
          myTS.MappingName)
        If Not oldTS Is Nothing Then DataGrid1.TableStyles.Remove(oldTS)
        DataGrid1.TableStyles.Add(myTS)
 
    End Sub
So jetzt meine Frage, wie muss ich die Klasse verändern wenn ich eine abfrage machen möchte in der Spalte Geschlecht, z.B. Männlich -->blau, Weiblich -->Pink?
Den Spaltenstil muss man auch ändern oder?

Gruß
Chara

VB@rchiv its the Best

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bestimmte Zellen im Datagrid farbig darstellen2.952Chief06.03.05 16:34
Re: Bestimmte Zellen im Datagrid farbig darstellen1.982Micke11.03.05 12:18
Re: Bestimmte Zellen im Datagrid farbig darstellen1.965Maywood11.03.05 12:38
Re: Bestimmte Zellen im Datagrid farbig darstellen1.828Chief11.03.05 13:37
Re: Bestimmte Zellen im Datagrid farbig darstellen2.024Micke11.03.05 13:38
Re: Bestimmte Zellen im Datagrid farbig darstellen1.943Maywood11.03.05 18:47
Re: Bestimmte Zellen im Datagrid farbig darstellen1.953Micke13.03.05 21:35
Re: Bestimmte Zellen im Datagrid farbig darstellen1.733Maywood14.03.05 09:06
Re: Bestimmte Zellen im Datagrid farbig darstellen2.214Chief22.03.05 15:53
Re: Bestimmte Zellen im Datagrid farbig darstellen2.063Maywood22.03.05 22:43
Re: Bestimmte Zellen im Datagrid farbig darstellen1.683Chief22.03.05 23:42
Re: Bestimmte Zellen im Datagrid farbig darstellen1.645lpinter22.03.05 23:44
Re: Bestimmte Zellen im Datagrid farbig darstellen1.713Chief23.03.05 00:28
Re: Bestimmte Zellen im Datagrid farbig darstellen1.579Chief23.03.05 00:31
Re: Bestimmte Zellen im Datagrid farbig darstellen1.670lpinter23.03.05 08:11
Re: Bestimmte Zellen im Datagrid farbig darstellen1.636Chief23.03.05 09:55
Re: Bestimmte Zellen im Datagrid farbig darstellen1.690Chief23.03.05 10:22
Re: Bestimmte Zellen im Datagrid farbig darstellen1.606lpinter23.03.05 11:52
Re: Bestimmte Zellen im Datagrid farbig darstellen1.655Chief23.03.05 13:47
Re: Bestimmte Zellen im Datagrid farbig darstellen1.656lpinter23.03.05 14:31
Re: Bestimmte Zellen im Datagrid farbig darstellen1.661lpinter23.03.05 15:02
Re: Bestimmte Zellen im Datagrid farbig darstellen1.616Chief23.03.05 16:02
Re: Bestimmte Zellen im Datagrid farbig darstellen1.556lpinter23.03.05 16:27
Re: Bestimmte Zellen im Datagrid farbig darstellen1.699Chief23.03.05 18:32
Re: Bestimmte Zellen im Datagrid farbig darstellen1.910Chief23.03.05 19:16
Re: Bestimmte Zellen im Datagrid farbig darstellen1.661lpinter23.03.05 19:33
Re: Bestimmte Zellen im Datagrid farbig darstellen1.600Chief23.03.05 19:54
Re: Bestimmte Zellen im Datagrid farbig darstellen1.602lpinter23.03.05 20:25
Re: Bestimmte Zellen im Datagrid farbig darstellen1.683Chief23.03.05 20:57
Re: Bestimmte Zellen im Datagrid farbig darstellen1.597Chief23.03.05 21:16
Re: Bestimmte Zellen im Datagrid farbig darstellen1.601lpinter23.03.05 21:43
Re: Bestimmte Zellen im Datagrid farbig darstellen1.669Chief23.03.05 22:18
Re: Bestimmte Zellen im Datagrid farbig darstellen1.645lpinter23.03.05 22:27
Re: Bestimmte Zellen im Datagrid farbig darstellen1.631Chief23.03.05 22:50
Re: Bestimmte Zellen im Datagrid farbig darstellen1.586lpinter23.03.05 22:52
Re: Bestimmte Zellen im Datagrid farbig darstellen1.756Chief23.03.05 23:09
Re: Bestimmte Zellen im Datagrid farbig darstellen1.601lpinter23.03.05 23:59
Re: Bestimmte Zellen im Datagrid farbig darstellen3.661lpinter11.03.05 15:21
Re: Bestimmte Zellen im Datagrid farbig darstellen1.928lpinter24.03.05 20:36
Re: Bestimmte Zellen im Datagrid farbig darstellen1.789Chief24.03.05 23:04

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