以编程方式在DataGridView中select一行

如何在运行时以编程方式在DataGridViewselect特定范围的行?

没有testing,但我认为你可以做到以下几点:

 dataGrid.Rows[index].Selected = true; 

或者你可以做下面的事情(但是:不要testing):

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

在Visual Basic中,执行此操作以在DataGridViewselect一行; 所选行将以高亮显示的颜色显示,但请注意光标位置不会改变:

 Grid.Rows(0).Selected = True 

这是否改变了光标的位置:

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

合并上面的行将定位光标并select一行。 这是在DataGridView聚焦和select一行的标准程序:

 Grid.CurrentCell = Grid.Rows(0).Cells(0) Grid.Rows(0).Selected = True 
  DataGridView.Rows.OfType<DataGridViewRow>().Where(x => (int)x.Cells["Id"].Value == pId).ToArray<DataGridViewRow>()[0].Selected = true; 

尝试这个:

 datagridview.Rows[currentRow].Cells[0]; 

如果您有数据源,则可以使用Select方法: http : //msdn.microsoft.com/zh-cn/library/b51xae2y%28v=vs.71%29.aspx

或者使用linq,如果你有数据源中的对象

  <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. 清除以前的所有select。
  2. 循环遍历行中需要select的行。
  3. 从网格中获取它们的行处理(注意网格已经更新了新行)
  4. 检查行句柄是否有效。
  5. 当有效的行处理然后select它。

其中,itemList是在网格视图中要select的行的列表。