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.
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?
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
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?
Comment