2009-05-13 5 views

Répondre

22

La méthode simple:

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

Si vous vous demandez comme je l'étais, [DataGridView.Columns.Contains est insensible à la casse] (https://msdn.microsoft.com/en-us/library/system.windows .forms.datagridviewcolumn.name (v = vs.110) .aspx). – downwitch

1

Vous pouvez tester la visibilité sur colonne en utilisant la propriété Visible:

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

Cela vous indiquera si doit être affiché la colonne.

Vous pouvez obtenir la colonne via cet appel si vous connaissez l'index:

DataColumn column = dGV.Columns[index]; 

Si la colonne est affichée, mais hors de l'écran, je ne sais pas comment vous tester pour cela.

1

Parcourez les colonnes, en vérifiant l'en-tête (je suppose que c'est ce que vous cherchez) et la propriété Visible.

5

Tout d'abord vérifier si la colonne existe et vous vérifiez sa visibilité. L'appel de la propriété de la colonne pour une colonne qui n'existe pas va se bloquer.

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

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

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

Bien que cet extrait de code puisse résoudre le problème, il n'explique ni pourquoi ni comment il répond à la question. S'il vous plaît [inclure une explication pour votre code] (// meta.stackexchange.com/q/114762/269535), car cela aide vraiment à améliorer la qualité de votre message. Rappelez-vous que vous répondez à la question pour les lecteurs dans le futur, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. ** Flaggers/reviewers: ** [Pour les réponses au code comme celui-ci, downvote, ne pas supprimer!] (// meta.stackoverflow.com/a/260413/2747593) – Patrick

Questions connexes