J'ai le gestionnaire d'événements CurrentCellChanged
d'une DataGridView
et je veux pouvoir accéder à l'index de colonne des cellules sélectionnées actuellement à partir du gestionnaire d'événements.
J'avais l'habitude d'avoir le code dans le gestionnaire CellClick
qui a DataGridViewCellEventArgs
en tant que paramètre afin que je puisse obtenir l'index de colonne à partir du paramètre event args mais l'événement CurrentCellChanged
a EventArgs
en tant que paramètres qui, je crois, est censé impliquer qu'il n'y a pas de données pour cet evènement.
Existe-t-il un moyen d'accéder au nouvel index de colonne de cellules actuellement sélectionné?
Utilisez la propriété DataGridView.CurrentCell
..
http://msdn.Microsoft.com/en-us/library/system.windows.forms.datagridview.currentcell.aspx
int columnIndex = dataGridView.CurrentCell.ColumnIndex;
int rowIndex = dataGridView.CurrentCell.RowIndex;
http://msdn.Microsoft.com/en-us/library/system.windows.forms.datagridviewcell.aspx
Utilisez la propriété CurrentCell de DataGridView.
void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
{
MessageBox.Show(dataGridView1.CurrentCell.ColumnIndex.ToString());
MessageBox.Show(dataGridView1.CurrentCell.RowIndex.ToString());
}
Si vous voulez vérifier avec l'en-tête de la colonne, puis
dataGridView.CurrentCell.Column.Header
Il est à noter que si quelqu'un utiliseWPF(avec le DataGrid plutôt que DataGridView), il peut simplement faire:
DataGrid currentGrid = sender as DataGrid;
et alors
currentGrid.CurrentColumn.DisplayIndex
ou
currentGrid.CurrentCell.Column.DisplayIndex