Это так просто. Как получить индекс выбранного DataGridView
? Я не хочу объект , я хочу индекс (0 .. n).Указатель текущей выбранной строки в DataGridView
ответ
Недвижимость RowIndex
для свойства CurrentCell
для DataGridView.
datagridview.CurrentCell.RowIndex
Ручка SelectionChanged
события и найти индекс выбранной строки, как указано выше.
dataGridView1.SelectedRows[0].Index;
Или, если вы хотите использовать LINQ и получить индекс всех выбранных строк, вы можете сделать:
dataGridView1.SelectedRows.Select(r => r.Index);
полезное (IndexOf не был действительно «на прицеле» пока), но окольными начиная с получения строки не нужно. Метод .Index - это то, что я искал. – ErikE
Используйте свойство Index в вашей коллекции SelectedRows DGV в:
int index = yourDGV.SelectedRows[0].Index;
Считаете ли вы, что это лучше или DGV.CurrentCell.RowIndex? – ErikE
В некоторых случаях текущая ячейка не может быть выбрана, поэтому это лучший способ пойти. – AbleArcher
@thethuthinnang, когда вы не выбрали строку, решение @JayRiggs выведет ошибку индекса два. Вам лучше обернуть его с помощью 'if' –
Попробуйте DataGridView.CurrentCellAddress.
Возвраты: точка, представляющая индексы строки и столбца текущей активной ячейки.
E.G. Выберите первый столбец и пятый ряд, и вы вернетесь: Point (X = 1, Y = 5)
P.S. так как я попросил индекс строки, все было бы менее скалистым в наших отношениях, если бы вы сказали «DataGridView.CurrentCellAddress.Y' ... :) – ErikE
Я думаю, что на данный момент все эти ответы действительны, это просто вверх к которому вы хотите выбрать, что является самым чистым для ваших целей. Я бы предложил ввести различные реализации и посмотреть на IL в .NET Reflector (http://www.red-gate.com/products/reflector/), если вы действительно хотите узнать, какой код генерируется для каждого, но как многие скажут, это микро-оптимизация. Это действительно то, что наиболее очевидно в намерениях. PS Примечание, которое должно быть более ясным в будущем. – Kilanash
попробуйте это, он будет работать ... он даст вам индекс выбранного индекса строки .. .
int rowindex = dataGridView1.CurrentRow.Index;
MessageBox.Show(rowindex.ToString());
dataGridView1.SelectedRows[0].Index;
Здесь найдете все о DataGridView C# datagridview tutorial
Линды
попробовать этот
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
}
Спасибо, именно то, что мне нужно, чтобы определить, что скрытое значение выбранной строки при использовании элемента управления, не связанного с gridview. – orgtigger
Попробуйте следующее:
int myIndex = MyDataGrid.SelectedIndex;
Это даст индекс строки, который выбран в данный момент.
Надеется, что это помогает
Я изменил ответ @JayRiggs', и это работает. Вам нужен if
, потому что иногда SelectedRows может быть пустым, поэтому операция индекса выдает исключение.
if (yourDGV.SelectedRows.Count>0){
int index = yourDGV.SelectedRows[0].Index;
}
Вы можете попробовать этот код:
int columnIndex = dataGridView.CurrentCell.ColumnIndex;
int rowIndex = dataGridView.CurrentCell.RowIndex;
Попробуйте:
int rc=dgvDataRc.CurrentCell.RowIndex;** //for find the row index number
MessageBox.Show("Current Row Index is = " + rc.ToString());
Я надеюсь, что это поможет.
Спасибо за исправление, но ваш ответ является дубликатом выбранного (и наиболее ответного ответа), который дал решение 'datagridview.CurrentCell.RowIndex'. Мои извинения - я собираюсь рекомендовать удалить этот пост в виде полного дубликата. – ErikE
Я, если значение приобретают ряд щелкают:
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
}
Perfect. Это кажется простым или быстрым, даже над SelectedRows [0] .Index. Будет ли это хорошим предположением? – ErikE
Хм, я не думал о выборе нескольких строк. В этом случае я не уверен в поведении текущей ячейки. – fletcher
Если это что-то вроде Excel, выбранный список может быть много строк/столбцов, но есть только одна текущая/активная ячейка. Я только забочусь о текущей строке, так что это должно делать хорошо. – ErikE