Question

J'ai un DataGridView contenant 4 colonnes et plusieurs lignes de données. Je souhaite parcourir le DataGridView et obtenir la valeur de cellule à partir de une colonne spécifique uniquement , car j'ai besoin de cette donnée pour la transmettre à une méthode.

Voici mon code:

foreach (DataGridViewRow row in this.dataGridView2.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells)
    {
        if (cell.Value == null || cell.Value.Equals(""))
        {
            continue;
        }

        GetQuestions(cell.Value.ToString());  
    }
}

Cela semble traverser toutes les cellules, mais je dois pouvoir spécifier quelque chose comme:

foreach (DataGridViewRow row in this.dataGridView2.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells[2])//Note specified column index
    {
        if (cell.Value == null || cell.Value.Equals(""))
        {
            continue;
        }
        GetQuestions(cell.Value.ToString());
    }
}
Était-ce utile?

La solution

Ne voulez-vous pas simplement supprimer la boucle foreach interne? Ou ai-je oublié quelque chose?

foreach (DataGridViewRow row in this.dataGridView2.Rows)
{                            
    DataGridViewCell cell = row.Cells[2]; //Note specified column index
    if (cell.Value == null || cell.Value.Equals(""))
    {
        continue;
    }

    GetQuestions(cell.Value.ToString());
}

Autres conseils

foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
   DataGridViewCell cell = row.Cells["foo"];//Note specified column NAME
   {
      if (cell != null && (cell.Value != null || !cell.Value.Equals("")))
      {
         GetQuestions(cell.Value.ToString());
      }
   }
}

Peut-être pourriez-vous vérifier le ColumnIndex? Souhaitez toujours parcourir toutes les cellules.

if (cell.Value == null || cell.Value.Equals("") || cell.ColumnIndex != 2)
{
    continue;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top