Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB6]Variazione Backcolor FlexGrid

    Ciao,
    ho implementato un codice per evidenziare la riga su cui ho cliccato in un FlexGrid:
    codice:
    Private Sub FlexGridDettagli_Click()
    
    FlexGridDettagli.BackColor = &HFFFFFF
    
    'Controllo che ci siano dettagli inseriti nella fattura.
    If RsClienti.RecordCount <> 0 Then
                'Cambio colore alla riga selezionata.
            For ColoreRighe = 0 To 7
            FlexGridDettagli.Col = ColoreRighe
            FlexGridDettagli.CellBackColor = &HC0C0C0
        Next ColoreRighe
    End If
    
    End Sub
    il problema è che la prima volta che clicco sulla griglia si evidenzia la riga giusta, ma se clicco un'altra volta su un'altra riga si evidenzia la riga corrente, ma rimane selezionata anche quella precedente.
    In realtà quella precedente si dovrebbe deselezionare, perchè ad ogni click della griglia formatto lo sfondo a bianco.

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Perchè probabilmente la BackColor e la CellBackColor hanno una funzione e importanza diverse.
    Dalla Guida:
    La proprietà BackColor determina il colore di tutte le celle non fisse. Per impostare il colore dello sfondo di singole celle, utilizzare la proprietà CellBackColor.
    Ripeti lo stesso ciclo colorando di bianco le altre
    codice:
    Dim Cont1 As Byte
    Dim Cont2 As Byte
    Static Riga As Byte
    Dim Colonna As Byte
    
    If Riga <> FG.Row Then
      Riga = FG.Row
      Colonna = FG.Col
      For Cont1 = FG.FixedCols To FG.Cols - 1
        FG.Col = Cont1
        FG.Row = Riga
        FG.CellBackColor = &HC0C0C0
      Next Cont1
    
      For Cont1 = FG.FixedCols To FG.Cols - 1
        For Cont2 = FG.FixedRows To FG.Rows - 1
          If Cont2 <> Riga Then
            FG.Col = Cont1
            FG.Row = Cont2
            FG.CellBackColor = &HFFFFFF
          End If
        Next Cont2
      Next Cont1
      FG.Col = Colonna
      FG.Row = Riga
    End If

  3. #3
    Funziona! :gren:

    Grazie tante.



  4. #4
    Io di solito faccio cosi':
    codice:
    Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    MSFlexGrid1.HighLight = flexHighlightAlways
    MSFlexGrid1.FocusRect = flexFocusNone
    MSFlexGrid1.Col = 0
    MSFlexGrid1.ColSel = 7
    End Sub
    praticamente non coloro niente ma lascio fare all'evidenziazione(si dira' cosi ?)!
    puoi anche mettere tutto dentro all'evento on_click è lo stesso!
    mic

  5. #5
    Grazie.
    Sicuramente lo proverò.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.