とても簡単です。 Row
の現在選択されているDataGridView
のインデックスを取得するにはどうすればよいですか? Row
オブジェクトは必要ありません。インデックス(0 .. n)が必要です。
DataGridViewの RowIndex
プロパティには CurrentCell
プロパティがあります。
datagridview.CurrentCell.RowIndex
SelectionChanged
イベントを処理し、上記のように選択した行のインデックスを見つけます。
DGVのSelectedRowsコレクションでIndexプロパティを使用します。
int index = yourDGV.SelectedRows[0].Index;
dataGridView1.SelectedRows[0].Index;
または、LINQを使用して、選択したすべての行のインデックスを取得する場合は、次のようにします。
dataGridView1.SelectedRows.Select(r => r.Index);
それを試してみてください...それはあなたに選択された行インデックスのインデックスを与えます...
int rowindex = dataGridView1.CurrentRow.Index;
MessageBox.Show(rowindex.ToString());
これを試して
bool flag = dg1.CurrentRow.Selected;
if(flag)
{
/// datagridview row is selected in datagridview rowselect selection mode
}
else
{
/// no row is selected or last empty row is selected
}
それを試してみてください:
int rc=dgvDataRc.CurrentCell.RowIndex;** //for find the row index number
MessageBox.Show("Current Row Index is = " + rc.ToString());
それがあなたのお役に立てば幸いです。
DataGridView.CurrentCellAddress を試してください。
戻り値:現在アクティブなセルの行と列のインデックスを表すPoint。
例えば。最初の列と5行目を選択すると、戻ります:Point(X = 1、Y = 5)
@JayRiggsの回答を修正しましたが、これは機能します。時々SelectedRowsが空になることがあるため、if
が必要です。そのため、インデックス操作は例外をスローします。
if (yourDGV.SelectedRows.Count>0){
int index = yourDGV.SelectedRows[0].Index;
}
このコードを試すことができます:
int columnIndex = dataGridView.CurrentCell.ColumnIndex;
int rowIndex = dataGridView.CurrentCell.RowIndex;
行値の取得がクリックされた場合に使用しました:
private void dataGridView_Product_CellClick(object sender, DataGridViewCellEventArgs e){
int rowIndex;
//rowIndex = e.RowIndex; //Option 1
//rowIndex= dataGridView_Product.CurrentCell.RowIndex; //Option 2
rowIndex = dataGridView_Product.CurrentRow.Index; //Option 3
}