webentwicklung-frage-antwort-db.com.de

Rufen Sie den aktuellen Zellenspaltenindex in DataGridView CurrentCellChanged-Ereignis ab

Ich habe den CurrentCellChanged-Ereignishandler einer DataGridView und ich möchte in der Lage sein, auf den aktuellen Spaltenindex der ausgewählten Zellen über den Ereignishandler zuzugreifen. 

Früher hatte ich den Code im CellClick-Handler, der DataGridViewCellEventArgs als Parameter hat, sodass ich den Spaltenindex vom Parameter event args abrufen konnte, aber das CurrentCellChanged-Ereignis hat EventArgs als Parameter, für die ich glaube, dass es keine Daten gibt diese Veranstaltung. 

Gibt es eine Möglichkeit, auf den neuen, aktuell ausgewählten Zellenspaltenindex zuzugreifen?

13
MBU

Verwenden Sie die DataGridView.CurrentCell-Eigenschaft ..

http://msdn.Microsoft.com/de-de/library/system.windows.forms.datagridview.currentcell.aspx

int columnIndex = dataGridView.CurrentCell.ColumnIndex;
int rowIndex = dataGridView.CurrentCell.RowIndex;

http://msdn.Microsoft.com/de-de/library/system.windows.forms.datagridviewcell.aspx

33
Akram Shahda

Verwenden Sie die CurrentCell-Eigenschaft des DataGridView.

void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
{
    MessageBox.Show(dataGridView1.CurrentCell.ColumnIndex.ToString());
    MessageBox.Show(dataGridView1.CurrentCell.RowIndex.ToString());
}
6
David Hall

Wenn Sie es mit der Überschrift der Spalte überprüfen möchten, dann

dataGridView.CurrentCell.Column.Header
0
Bhavani Kannan

Es ist erwähnenswert, dass jemand, derWPF(mit DataGrid und nicht DataGridView) verwendet, einfach Folgendes tun kann:

DataGrid currentGrid = sender as DataGrid;

und dann

currentGrid.CurrentColumn.DisplayIndex

oder 

currentGrid.CurrentCell.Column.DisplayIndex
0
XtraSimplicity