2009-05-13 4 views

risposta

22

Il metodo semplice:

if (dgv.Columns.Contains("Address") && dgv.Columns["Address"].Visible) 
{ 
    // do stuff 
} 
+0

Nel caso vi stiate chiedendo come mi è stato, [DataGridView.Columns.Contains è case-insensitive] (https://msdn.microsoft.com/en-us/library/system.windows .forms.datagridviewcolumn.name (v = vs.110) .aspx). – downwitch

1

È possibile verificare la visibilità della colonna utilizzando la proprietà Visible:

if (column.Visible) 
{ 
    // Do Stuff 
} 

Questo vi dirà se deve essere visualizzato nella colonna.

È possibile ottenere la colonna tramite questa chiamata se si conosce l'indice:

DataColumn column = dGV.Columns[index]; 

Se la colonna viene visualizzato ma fuori dallo schermo non so come si sarebbe testare per questo.

1

Passare attraverso le colonne, controllare l'intestazione (presumo che sia quello che stai cercando) e la proprietà Visible.

5

primo luogo verificare se esiste la colonna e quindi si verifica la visibilità.

Chiamare la proprietà della colonna per una colonna che non esiste si bloccherà.

if (dgv.Columns.Contains("Address") 
{ 
    if (dgv.Columns["Address"].Visible) 
    { 

    } 
} 
0
var dataGridViewColumn = dgv.Columns["Address"]; 

if (dataGridViewColumn != null && dataGridViewColumn.Visible) 
    { 
        //do stuff 
    } 
+0

Sebbene questo snippet di codice possa risolvere il problema, non spiega perché o come risponda alla domanda. Per favore [includi una spiegazione per il tuo codice] (// meta.stackexchange.com/q/114762/269535), in quanto ciò aiuta davvero a migliorare la qualità del tuo post. Ricorda che stai rispondendo alla domanda per i lettori in futuro, e queste persone potrebbero non conoscere le ragioni del tuo suggerimento sul codice. ** Segnalatori/revisori: ** [Per le risposte di solo codice come questa, downvote, non eliminare!] (// meta.stackoverflow.com/a/260413/2747593) – Patrick