以编程方式在DataGridView中select一行
如何在运行时以编程方式在DataGridView
select特定范围的行?
没有testing,但我认为你可以做到以下几点:
dataGrid.Rows[index].Selected = true;
或者你可以做下面的事情(但是:不要testing):
dataGrid.SelectedRows.Clear(); foreach(DataGridViewRow row in dataGrid.Rows) { if(YOUR CONDITION) row.Selected = true; }
在Visual Basic中,执行此操作以在DataGridView
select一行; 所选行将以高亮显示的颜色显示,但请注意光标位置不会改变:
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 } }
- 清除以前的所有select。
- 循环遍历行中需要select的行。
- 从网格中获取它们的行处理(注意网格已经更新了新行)
- 检查行句柄是否有效。
- 当有效的行处理然后select它。
其中,itemList是在网格视图中要select的行的列表。