per colorare una cella di una msflexgrid si usa il seguente metodo
msflexgrid1.row=1
msflexgrid1.col=1
msflexgrid1.cellforecolor=vbred
e la cella 1,1 si olora di rosso.
esiste un modo per colorare la cella o il testo usando il modo tipo di inserimento dati come il textmatrix(1,1) ?
Il mio problema è che ho una mesflexgrid con 6 colonne e 40 righe, due colonne sono collegate a una label a matrice 40 che cambia valore anche 3 volte al secondo e questa a seconda del suo valore index aggiorna la rispettiva cella della textbox inerente le due colonne prima citate.
Ora altre due colonne servono per inserire dei dati tramite un textbox, questa texbox si visualizza assumendo la posizione e le forme della cella della msflexgrid in quel momento selezionata, inserisco il dato e premendo invio lo trasferisco alla msflexgrid.
ora avrei bisogno a seconda del dato della label oltre che di aggiornare la msflexgrid anche di colorare la cella, ma se sono selezionato nella msflexgrid in una delle due colonne dove inserisco il dato devo rimanere lì. Questo di seguito è il codice.
- Codice: Seleziona tutto
Private Sub LBL_B1_0_C_Change(Index As Integer)
If Left$(LBL_B1_0_C(Index), 2) = "BS" Then
DATO = Replace(LBL_B1_0_C(Index), "BS", "")
F_BOOK.MSFGRID_BOOK1(0).TextMatrix(Index, 2) = DATO
RIGA = F_BOOK.MSFGRID_BOOK1(0).Row
COLONNA = F_BOOK.MSFGRID_BOOK1(0).Col
F_BOOK.MSFGRID_BOOK1(0).Row = Index
F_BOOK.MSFGRID_BOOK1(0).Col = 2
F_BOOK.MSFGRID_BOOK1(0).CellBackColor = RGB(249, 224, 76) 'GIALLO
F_BOOK.MSFGRID_BOOK1(0).Row = RIGA
F_BOOK.MSFGRID_BOOK1(0).Col = COLONNA
Else
F_BOOK.MSFGRID_BOOK1(0).TextMatrix(Index, 2) = Format(LBL_B1_0_C(Index), DEC_OPZ(0))
RIGA = F_BOOK.MSFGRID_BOOK1(0).Row
COLONNA = F_BOOK.MSFGRID_BOOK1(0).Col
F_BOOK.MSFGRID_BOOK1(0).Row = Index
F_BOOK.MSFGRID_BOOK1(0).Col = 2
F_BOOK.MSFGRID_BOOK1(0).CellBackColor = RGB(48, 56, 58) 'GRIGIO SCURO
F_BOOK.MSFGRID_BOOK1(0).Row = RIGA
F_BOOK.MSFGRID_BOOK1(0).Col = COLONNA
End If
End Sub
come si può notare il codice prima di colorare la cella memorizza nelle variabili riga e colonna le coordinate della cella selezionata della msflexgrid, seleziona la cella da colorare, la colora e ritorna alla selezione.
Il problema è che per via della label che aggiorna dati anche 3 volte al secondo si crea non solo un fastidioso sfarfallio della selezione della cella della msflexgrid ma a volte anche un errore di inserimento del dato.
se qualcuno volesse gentilmente darmi suggerimenti saranno ovviamente ben accetti.