web-dev-qa-db-ja.com

DataGridView CurrentCellChangedイベントで現在のセル列インデックスを取得します

CurrentCellChangedDataGridViewイベントハンドラーがあり、イベントハンドラーから現在選択されているセルの列インデックスにアクセスできるようにしたいと考えています。

私はCellClickハンドラーにパラメーターとしてDataGridViewCellEventArgsを含むコードを使用していたため、イベントargsパラメーターから列インデックスを取得できましたが、CurrentCellChangedイベントにはEventArgsパラメータとして、このイベントのデータがないことを意味すると思われます。

現在選択されている新しいセルの列インデックスにアクセスする方法はありますか?

13
MBU

使用する 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

33
Akram Shahda

DataGridViewのCurrentCellプロパティを使用します。

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

列のヘッダーで確認したい場合

dataGridView.CurrentCell.Column.Header
0
Bhavani Kannan

注目に値するのは、誰かが[〜#〜] wpf [〜#〜]を使用している場合(DataGridViewではなくDataGridを使用)、簡単にできることです。

DataGrid currentGrid = sender as DataGrid;

その後

currentGrid.CurrentColumn.DisplayIndex

または

currentGrid.CurrentCell.Column.DisplayIndex
0
XtraSimplicity