PDA

View Full Version : [C#] editing di una cella in una datagridview


Maxti
23-08-2010, 16:27
Ciao,
ho un problema probabilmente molto banale ma che non riesco a risolvere: ho una datagridview con una colonna di tipo checkbox. Le celle di questa colonna dovrebbero essere modificate ed automaticamente la modifica deve rifletteresi sul database al quale la datagridview tramite dataset è connessa.
Il problema è la validazione della modifica di una cella sembra che venga fatto solo quando si cambia la colonna, invece cliccando sulla cella e controllandone il valore esso non viene modificato. Come si può evitare questo meccanismo contorto ? Io clicco sulla cella e viene modificata immediatamente.

grazie

Maxti
24-08-2010, 16:42
nessuno?

sneeze
24-08-2010, 18:07
Scusami ma non capisco bene cosa intendi.
La validazione della cella avviene durante il lostfocus
quindi è normale che la modifica venga persistita quando cambi cella. non capisco che problema ti dia.
Però forse non riesco a capire la tua domanda

Maxti
25-08-2010, 07:49
Se effettivamente la validazione avviene sul lostfocus come si può validare il valore di una cella di una datagridview con una sola riga dato che non posso spostare il cursore in altre righe ? L'unica azione che posso fare è chiudere il fomr dovre è cotenuta la datagridview, ma così non mi salva il valore.

sneeze
25-08-2010, 08:03
non serve avere altre righe basta spostarsi di cella per effettuare la validazione di quella cella.

ad ogni modo purtroppo non ho tempo di analizzarti la cosa perciò ti consiglio di agganciarti agli aventi di cellvalidating e di cellendedit della tua griglia. Poi ti metti in debug su quegli eventi in modo da vedere esattamente quando effettua la validazione e come si comporta in modo da capire come comportarti.

dataGridView1.CellValidating += new
DataGridViewCellValidatingEventHandler(dataGridView1_CellValidating);
dataGridView1.CellEndEdit += new
DataGridViewCellEventHandler(dataGridView1_CellEndEdit);

Maxti
26-08-2010, 15:48
Ok, grazie, comunque ho risolto. Nel mio caso ho catturato l'evento modifica della cella con la checkbox, in questo modo la modifica può avvenire senza aspettare la validazione che avviene cambiando cella.