web-dev-qa-db-ja.com

DataGridViewの行をプログラムで選択する

実行時にプログラムでDataGridViewの特定の範囲の行を選択するにはどうすればよいですか?

90
Nagendra

テストされていませんが、次のことができると思います。

dataGrid.Rows[index].Selected = true;

または、以下を実行できます(ただし、テストされていません)。

dataGrid.SelectedRows.Clear();
foreach(DataGridViewRow row in dataGrid.Rows)
{
    if(YOUR CONDITION)
       row.Selected = true;
}
104
ChrFin

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
28
Rodrigo T.
DataGridView.Rows
    .OfType<DataGridViewRow>()
     .Where(x => (int)x.Cells["Id"].Value == pId)
     .ToArray<DataGridViewRow>()[0]
     .Selected = true;
11
IM999MaxBonum

これを試して:

datagridview.Rows[currentRow].Cells[0];
2
user6314898
 <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
IFlyHigh

データソースがある場合は、Selectメソッドを使用できます。 http://msdn.Microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx

または、データソースにオブジェクトがある場合はlinqを使用します

0
thekip