To takie proste. Jak uzyskać indeks aktualnie wybranego Row
pliku DataGridView
? Nie chcę Row
obiektu, chcę indeks (0 .. n).
Odpowiedzi:
Istnieje RowIndex
właściwość dla CurrentCell
właściwości DataGridView.
datagridview.CurrentCell.RowIndex
Obsługuj SelectionChanged
zdarzenie i znajdź indeks wybranego wiersza, jak powyżej.
CurrentCell
zwraca „aktywną” komórkę, która różni się od „Wybrano”. Nawet jeśli zaznaczonych jest wiele wierszy, aktywna komórka może znajdować się gdzie indziej, a może być tylko jedna aktywna komórka
Użyj właściwości Index w kolekcji SelectedRows DGV:
int index = yourDGV.SelectedRows[0].Index;
if
dataGridView1.SelectedRows[0].Index;
Lub jeśli chcesz użyć LINQ i uzyskać indeks wszystkich wybranych wierszy, możesz zrobić:
dataGridView1.SelectedRows.Select(r => r.Index);
dataGridView1.SelectedRows[0].Index;
Tutaj znajdziesz wszystko o samouczku datagridview w języku C # dotyczącym datagridview
Lynda
Spróbuj tego
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
}
Zmodyfikowałem odpowiedź @JayRiggs i to działa. Potrzebujesz, if
ponieważ czasami SelectedRows mogą być puste, więc operacja indeksu zgłosi wyjątek.
if (yourDGV.SelectedRows.Count>0){
int index = yourDGV.SelectedRows[0].Index;
}
Wypróbuj DataGridView.CurrentCellAddress .
Zwraca: Punkt, który reprezentuje indeksy wierszy i kolumn aktualnie aktywnej komórki.
EG Wybierz pierwszą kolumnę i piąty rząd, a otrzymasz: Punkt (X = 1, Y = 5)
DataGridView.CurrentCellAddress.Y
Spróbuj:
int rc=dgvDataRc.CurrentCell.RowIndex;** //for find the row index number
MessageBox.Show("Current Row Index is = " + rc.ToString());
Mam nadzieję, że ci to pomoże.
datagridview.CurrentCell.RowIndex
. Przepraszam - zamierzam zalecić usunięcie tego posta jako pełnego duplikatu.
Użyłem, jeśli kliknięto pobierz wartość wiersza:
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
}