evidenziare campi di datagrid
-
Io faccio una ricerca su diversi filtri, e poi carico i record trovati su una datagrid. Ad esempio se l'utente cerca sul campo codice1, la select sarà SELECT.....WHERE codice1 = cmbcodice1.text; se cerca su codice2 sarà SELECT.....WHERE codice2 = cmbcodice2.text e cos' via.
C'è un modo per far si ke, dopo aver riempito la datagrid con i record trovati, mi venga selezionato (magari con un colore d sfondo diverso o con una scritta in grassetto) il campo su cui ho fatto la select? Del tepo ke se l'utente compila la cmbcodice1 e lancia la ricerca, allora nella datagrid venga evidenziata la colonna codice1.
Ho spulciato tutti gli eventi o le proprietà associate ad una datagrid, ma nn ho trovato niente ke faccia al caso mio. Magari mi è sfuggito.
Grazie a tutti.
-
Se ho capito questo va bene. Devi cambiare il controllo per il cambio: qui evidenzia se il carattere inizia per F nel tuo caso usa le variabili scelte dall'utente.
Spero vada bene. Ciao
Public Class DataGridColoredTextBoxColumn
Inherits DataGridTextBoxColumn
Public Sub New()
End Sub
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)
' the idea is to conditionally set the foreBrush and/or backbrush
' depending upon some crireria on the cell value
' Here, we color anything that begins with a letter higher than 'F'
Try
Dim o As Object
o = Me.GetColumnValueAtRow(source, rowNum)
If (Not (o) Is Nothing) Then
Dim c As Char
c = CType(o, String).Substring(0, 1)
If (c > "F") Then
' could be as simple as
' backBrush = new SolidBrush(Color.Pink);
' or something fancier...
backBrush = New LinearGradientBrush(bounds, Color.FromArgb(255, 200, 200), Color.FromArgb(128, 20, 20), LinearGradientMode.BackwardDiagonal)
foreBrush = New SolidBrush(Color.White)
End If
End If
Catch ex As Exception
' empty catch
Finally
' make sure the base class gets called to do the drawing with
' the possibly changed brushes
MyBase.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight)
End Try
End Sub
End Class
Potrebbero interessarti anche ...
-
Risposte: 2
Ultimo Post: 07-12-2018, 16:51
-
Risposte: 0
Ultimo Post: 13-06-2012, 01:11
-
Risposte: 6
Ultimo Post: 28-06-2006, 23:05
-
Risposte: 6
Ultimo Post: 18-04-2006, 16:20
-
Risposte: 4
Ultimo Post: 06-07-2004, 19:13