ciao e grazie per il benvenuoto e per l'interessamento..
mi spiego meglio (per far capire meglio quello che sto facendo, chiedetemi pure, cercherò di spiegare meglio il tutto e rispondere alle vostre domande.. voglio risolvere questa situazione)
ho bisogno di accedere a quel valore specifico di quella cella per valutare l'immagine esistente e sostituirla con un'altra..esempio.. con doppio click sulla cella immagine (colonna watched num 4) mi scambia l'immagine alternativamente con un'immagine bianca e quella con gli occhiali (praticamente sta ad indicare visivamente se quel file video (relativo alla riga) è stato visto o meno (watched), con la possibilità all'utente di modificare questo stato a piacimento..
le due immagini le ho precaricate nel progetto come risorse (insieme ad altre immagini per il tipo di file video,immagine, audio, etc...)..
premesso che tutte le celle della colonna 4 le ho impostate su default con un'immagine bianca (=my.resource.NonWathched)
quando carico le righe, se il video (che sia) è stato visto allora gli do come valore a quella cella l'immagine con gli occhiali che mi ritrovo nelle risorse del progetto, così:
codice:
......
ImmagineWatched = My.Resources.occhiali_20x20 '<-- immagine che identifica che il video è stato visto
.......
questa è la riga di codice che uso per caricare ogni valore di una nuova riga come shared (quindi valori condivisi): (ovviamente a priori c'è tutto il codice per valutare tutti i parametri passatoli come argomento all''inserimento di una nuova riga per listadatagridview)
codice:
.....
ListaDataGridView.Rows.Add(Conta, False, ImmagineTipoFile, File.Name, ImmagineWatched, ((File.Length / 1024) / 1024), File.DirectoryName)
......
naturalmete tralascio tutti gli altri parametri che funzionano benissimo e riesco ad accedere al valore delle rispettive celle, tranne per le colonne immagine che come ho già detto, il valore restituito in ogni caso è un tipo immagine:{System.Drawing.Bitmap}...
eppure, la cosa strana che prima caricavo i valori per le nuove righe diversamente... però i tempi si allungavano parecchio (tipo per oltre 1000 righe caricate, i tempi si allungavano oltre il minuto) e la memoria ram utilizzata saliva oltre 1 GB..
esempio..
aggiungevo una riga vuota alla tabella
pos=listadatagridview.add
e poi inserivo ogni valore per ogni cella della nuova riga, così:
codice:
listadatagridview(0,pos).value=indice <---questa colonna è nascosta
listadatagridview(1,pos).value=false
listadatagridview(2,pos).value=ImmagineTipoFile
listadatagridview(3,pos).value=File.name
listadatagridview(4,pos).value=ImmagineWatched
.....e così via fino alla numero 6
così facendo riuscivo ad accere e valutare il valore di ogni cella immagine... ma l'impiego di risorse risultava esoso (perchè caricava ogni immagine in memoria),quindi mi ha costretto ad abbandonare quella strada e intraprendere quest'ultima con le righe condivise (sharedrow)
so che il mio problema può essere una banalità a cui io non so come comportarmi e sicuramente quelche esperto potrà aiutarmi ad andare avanti...
se avete altri dubbi chiedete pure
ciao