+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 2 su 2

evidenziare campi di datagrid

  1. #1
    E_ma non è in linea Scolaretto
    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.

  2. #2
    Lukas non è in linea Scolaretto
    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


+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Evidenziare campi
    Da pmagno72 nel forum Microsoft Access
    Risposte: 2
    Ultimo Post: 07-12-2018, 16:51
  2. Risposte: 0
    Ultimo Post: 13-06-2012, 01:11
  3. Associazione campi dataGrid
    Da cippalippa nel forum Visual Basic 6
    Risposte: 6
    Ultimo Post: 28-06-2006, 23:05
  4. evidenziare riga datagrid
    Da Diabolik nel forum Visual Basic 6
    Risposte: 6
    Ultimo Post: 18-04-2006, 16:20
  5. Evidenziare record in datagrid
    Da nandonando nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 06-07-2004, 19:13