Выбор строки в DataGridView программно - PullRequest
90 голосов
/ 07 июня 2011

Как можно программно выбрать определенный диапазон строк в DataGridView во время выполнения?

Ответы [ 6 ]

103 голосов
/ 07 июня 2011

Не проверено, но я думаю, что вы можете сделать следующее:

dataGrid.Rows[index].Selected = true;

или вы можете сделать следующее (но опять же: не проверено):

dataGrid.SelectedRows.Clear();
foreach(DataGridViewRow row in dataGrid.Rows)
{
    if(YOUR CONDITION)
       row.Selected = true;
}
28 голосов
/ 15 ноября 2013

В Visual Basic сделайте это, чтобы выбрать строку в DataGridView; выбранная строка будет выделена выделенным цветом, но обратите внимание, что положение курсора не изменится:

Grid.Rows(0).Selected = True

Сделать это изменить положение курсора:

Grid.CurrentCell = Grid.Rows(0).Cells(0)

Комбинируя строки выше, вы поместите курсор и выберете строку. Это стандартная процедура для фокусировки и выбора строки в DataGridView:

Grid.CurrentCell = Grid.Rows(0).Cells(0)
Grid.Rows(0).Selected = True
11 голосов
/ 14 сентября 2013
DataGridView.Rows
    .OfType<DataGridViewRow>()
     .Where(x => (int)x.Cells["Id"].Value == pId)
     .ToArray<DataGridViewRow>()[0]
     .Selected = true;
2 голосов
/ 26 мая 2016

Попробуйте:

datagridview.Rows[currentRow].Cells[0];
0 голосов
/ 06 октября 2014
 <GridViewName>.ClearSelection(); ----------------------------------------------------1
 foreach(var item in itemList) -------------------------------------------------------2
 {
    rowHandle =<GridViewName>.LocateByValue("UniqueProperty_Name", item.unique_id );--3
    if (rowHandle != GridControl.InvalidRowHandle)------------------------------------4
    {
        <GridViewName>.SelectRow(rowHandle);------------------------------------ -----5
    }
  }
  1. Очистить все предыдущие выделения.
  2. Проходить по строкам, которые необходимо выбрать в вашей сетке.
  3. Получить их дескрипторы строк из сетки (обратите внимание, что сетка уже обновленас новыми строками)
  4. Проверка допустимости дескриптора строки.
  5. Если действительный дескриптор строки, выберите его.

Где itemList - список строк длябыть выбранным в виде сетки.

0 голосов
/ 07 июня 2011

Вы можете использовать метод Select, если у вас есть источник данных: http://msdn.microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx

Или используйте linq, если в вашем источнике данных есть объекты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...