Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] Refresh DatagridView dopo schelta campo booleano
Forum - C# / VB.NET - [C#] Refresh DatagridView dopo schelta campo booleano

Avatar
fosforo (Normal User)
Expert


Messaggi: 305
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 15:01
Venerdì, 05/10/2018
Ciao
Forse sto faticando per una cosa semplicissima.
Ho creato un DatagridView e al suo interno ho un colonna con campi booleani con cui scelgo le righe.
Vorrei che alla scelta della cella booleana la riga di appartenenza diventasse rossa.
Ho provato in vari modi ma mi non riesco a fare il refresh del DGV al click sul campo booleano.


Grazie anticipatamente.


Scusate per la figuraccia.
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 305
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 16:40
Venerdì, 05/10/2018
In realtà ho scoperto che è un problema di aggiornamento DGV.
Se faccio delle scelte attraverso le bool come da immagine e vado a controllare,
l'ultima casella anche se selezionata non è contemplata.


fosforo ha allegato un file: Untitled.jpg (8687 bytes)
Clicca qui per guardare l'immagine


Scusate per la figuraccia.
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1888
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 20:14
Venerdì, 05/10/2018
che intendi per DGV?

cmq. per colorare le celle devi operare al paint del controllo.

Non ho sotto mano vs ora, ma dovresti impostare il controllo come DrawOwnerVariabile.
Ti mostro qualche esempio ma avrà sicuramente degli errori.


perché il fixed consente di modificare l'intero draw del controllo, mentre a te serve solo modificare il paint
di qualche elemento appunto la cella.

dovresti creare un nuova classe ed ereditare il controllo

Codice sorgente - presumibilmente C# / VB.NET

  1. class MiaGrid : DataGridView
  2. {
  3.  
  4.  
  5.  
  6. }



successivamente fare l'override dei metodi che ti servono
nel tuo caso dovrebbe essere


Codice sorgente - presumibilmente C#

  1. class MiaGrid : DataGridView
  2. {
  3.  
  4.  
  5. protected override void OnCellPaint(DataGridViewCellPaint e)
  6. {
  7.  
  8. base.OnCellPaint();
  9.  
  10. if(e.value.GetType() == typeof(bool))
  11. {
  12.  
  13.  //Qui va il tuo metodo di paint tipo
  14.  
  15. e.drawBackground();
  16.  
  17. e.Graphics.FillRectangle(e.ClipBound,true);
  18.  
  19. e.DrawString(e.Value.ToString(),ecc. ecc.);
  20.  
  21.  
  22. }
  23.  
  24.  
  25. }
  26.  
  27.  
  28. }



Questo dovrebbe essere più o meno quello che dovrebbe fare la tua DataGridView ( Se ho capito bene )


PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 305
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 10:28
Lunedì, 08/10/2018
Ciao

Grazie per l'aiuto, DGV ' DataGridView.
Ci provo.


Scusate per la figuraccia.
PM Quote