49 votes

Datagridview : sélection d'une ligne complète mais obtention d'une seule valeur de cellule

J'ai un datagridview qui est une sélection de ligne complète. Comment puis-je récupérer les données d'une seule cellule, quelle que soit la cellule de la rangée sur laquelle on a cliqué, puisque la rangée entière est mise en évidence ?

106voto

pratap k Points 9133

Vous pouvez faire comme ça :

private void datagridview1_SelectionChanged(object sender, EventArgs e)
{
  if (datagridview1.SelectedCells.Count > 0)
  {
    int selectedrowindex = datagridview1.SelectedCells[0].RowIndex;
    DataGridViewRow selectedRow = datagridview1.Rows[selectedrowindex];  
    string cellValue = Convert.ToString(selectedRow.Cells["enter column name"].Value);           
  }
}

0 votes

Grand - passer beaucoup de temps tout en fondant ce poste

0 votes

@pratap K , Est-ce que l'événement DataGridView1_SelectionChanged se déclenche au moment du chargement du formulaire ? mais cela se produit dans mon cas. Veuillez m'aider à résoudre ce problème. Si j'ai besoin de plus de détails, je le publierai sous forme de question.

0 votes

Je voulais le comportement opposé et votre message m'a aidé à réaliser ce que je devais faire. SelectedCells.Count == 1 :)

24voto

Özer Özcan Points 761

Si vous voulez obtenir le contenu de la cellule sélectionnée, vous avez besoin de l'index de la ligne et de la cellule.

int rowindex = dataGridView1.CurrentCell.RowIndex;
int columnindex = dataGridView1.CurrentCell.ColumnIndex; 

dataGridView1.Rows[rowindex].Cells[columnindex].Value.ToString();

8voto

Null Pointer Points 2355

Dans l'événement CellClick vous pouvez écrire le code suivant

string value =
      datagridviewID.Rows[e.RowIndex].Cells[e.ColumnIndex].FormattedValue.ToString();

En utilisant le code ci-dessus, vous obtiendrez la valeur de la cellule que vous avez cliquée. Si vous souhaitez obtenir la valeur d'une colonne particulière de la ligne cliquée, il suffit de remplacer e.ColumnIndex par l'indice de la colonne souhaitée.

0 votes

C'est une meilleure réponse, il faut juste la changer. e.ColumnIndex avec un nom de colonne ou un index de chaîne spécifique, puisque la question le demandait.

7voto

Rizwan Ijaz Points 63

Je sais, je suis un peu en retard pour la réponse. Mais j'aimerais apporter ma contribution.

DataGridView.SelectedRows[0].Cells[0].Value

Ce code est simple comme bonjour

2 votes

Seulement 6 ans et demi de retard !

4voto

V4Vendetta Points 15354

Vous pouvez également obtenir les valeurs de la cellule, car la sélection actuelle est référencée sous la rubrique CurrentRow

dataGridView1.CurrentRow.Cell[indexorname].FormattedValue

Ici, vous pouvez utiliser l'index ou le nom de la colonne et obtenir la valeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X