2012-03-20 11 views
6

Sto lavorando su un progetto WindowsForm e nella mia forma ho un DataGridView con una DataGridViewImageColumn che deve mostrare la stato di della riga (abilitato/disabilitato) utilizzando un'immagine.Visualizzazione immagine in un DataGridViewImageColumn legame testo-campo

Ho un DataTable che collego al mio datagrid. In questa tabella c'è una colonna che è lo stato di ogni riga ed è un campo di testo.

Come posso associare questa colonna allo DataGridViewImageColumn mostrando l'immagine corretta?

risposta

13

Ogni volta che ho domande su come fare le cose in un DataGridView, consulto le FAQ di Microsoft prima.

http://www.windowsclient.net/Samples/Go%20To%20Market/DataGridView/DataGridView%20FAQ.doc

In genere quello che faccio in quella situazione è gestire l'evento CellFormatting per impostare l'immagine in base al valore nella cella.

Quindi mi sento di archiviare le mie immagini in qualcosa di simile a un elenco di immagini, quindi avere il codice in CellFormatting come il seguente:

private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (dgv.Columns[e.ColumnIndex].Name == "status") 
    { 
     if (e.Value != null) 
     { 
      if (e.Value.ToString() == "1") 
      { 
       e.Value = imageList1.Images[1]; 
      } 
      else 
      { 
       e.Value = imageList1.Images[2]; 
      } 
     } 
    } 
} 
+0

Grazie per il suggerimento! – davioooh

+0

@UWSkeletor - (So che il post è vecchio) Questo codice non verrà eseguito 2 volte? Una volta sull'evento di formattazione iniziale delle celle e poi quando il valore è impostato sull'immagine. Quindi, perché non farlo nell'evento completo del database? – Stix

Problemi correlati