Announcement

Collapse
No announcement yet.

Problem mit Farben im DataGrid

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Farben im DataGrid

    Hallo zusammen,

    ich habe die DataGridTextBoxColumn so erweitert, das sie mir bei bestimmten Werten, den Hintergrund und den text des Feldes in einer von mir definierten Farbe darstellt.

    Code:
    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)
            If mDialogFarbeId <> "" Then
                Dim obj As Object
                obj = Me.GetColumnValueAtRow(source, rowNum)
                If Not obj Is System.DBNull.Value Then
                    ControlFarbe.SetzeFarbeFuer(Me, obj) ' hier werden mHintergrundfarbe und mTextfarbe definiert
                End If
            End If
            If mStrSearch <> "" Then
                Dim obj As Object
                obj = Me.GetColumnValueAtRow(source, rowNum)
                If Not obj Is Nothing And Not obj Is System.DBNull.Value Then
                    Dim strObj As String = CType(obj, String)
                    If strObj.StartsWith(mStrSearch) Then
                        'backBrush = New LinearGradientBrush(bounds, Color.Yellow, _
                        '            Color.Red, LinearGradientMode.BackwardDiagonal)
                        backBrush = New SolidBrush(mHintergrundfarbe)
                        foreBrush = New SolidBrush(mTextfarbe)
                    End If
                End If
            End If
            MyBase.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight)
        End Sub
    Wenn jetzt das Grid angezeigt wird, sind die Farben richtig gesetzt, aber in der Spalte habe ich ein kleines "Gewitter".
    Alle Zellen der Spalte "blitzen" immer wieder kurz auf. Zudem wird der Scrollbalken erst angezeigt, wenn ich kurz ins Grid klicke und ein wenig Scrolle.

    Kann mir jemand sagen, woher dieser Effekt kommt und wie ich ihn unterbinden kann?

  • #2
    Hat sich erledigt. Ich hatte mir eine herrliche Entlosschleife gebaut, die das Paint-Event immer wieder und wieder aufgerufen hat *schäm*

    Comment


    • #3
      Hallo,

      das Paint-Ereignis tritt ein wenn das Steuerelement neu gezeichnet wird. Also relativ oft. Um Farben im DataGridView darzustellen behandle ich das im DataBindingComplete-Ereignis.

      Vielleichts hilfst.

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment

      Working...
      X