C# 以编程方式选择DataGridView中的行
如何在运行时以编程方式在C# 以编程方式选择DataGridView中的行,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,如何在运行时以编程方式在DataGridView中选择特定范围的行?如果有数据源,可以使用select方法: 如果数据源中有未测试的对象,也可以使用linq,但我认为您可以执行以下操作: dataGrid.Rows[index].Selected = true; 或者您可以执行以下操作(但同样:未测试): DataGridView.Rows 第()类 .Where(x=>(int)x.Cells[“Id”].Value==pId) .ToArray()[0] .Selected=true;
DataGridView
中选择特定范围的行?如果有数据源,可以使用select方法:
如果数据源中有未测试的对象,也可以使用linq,但我认为您可以执行以下操作:
dataGrid.Rows[index].Selected = true;
或者您可以执行以下操作(但同样:未测试):
DataGridView.Rows
第()类
.Where(x=>(int)x.Cells[“Id”].Value==pId)
.ToArray()[0]
.Selected=true;
在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
.ClearSelection()----------------------------------------------------1.
foreach(项目列表中的var项目)---------------------------------------2
{
rowHandle=.LocateByValue(“UniqueProperty_Name”,item.unique_id);--3
if(rowHandle!=GridControl.InvalidRowHandle)--------------------------------------4
{
.选择行(行句柄);------------------------------------5
}
}
datagridview.Rows[currentRow].Cells[0];
试试这个:
DataGridViewRow row = dataGridView1.Rows[index row you want];
dataGridView1.CurrentRow = row;
希望这有帮助 请注意,如果DataGridView是只读的,则
SelectedRows.Clear()
将不起作用。请使用DataGridView的ClearSelection()方法代替SelectedRows.Clear()instance@Furkan:那可不是一回事。使用SelectedRows.Clear()
仅清除选定的行,但使用ClearSelection()
也会丢失列=>列选择…添加一行代码dataGrid.CurrentCell=dataGrid.rows[row.Index].Cells[0]代码>@Timeless:SelectionChanged事件在测试您的建议时似乎不会触发。网格。行(0)。单元格(0)在网格数据长于网格显示区域的情况下非常有用。上面提到的顺序不是必需的,您可以滑动代码进行行/单元格选择[来源:个人测试]。如何将网格移动到选定位置?行已选定,但栅格位置不在选定行上。手动滚动显示所选行。如何强制网格滚动?请参见:FirstDisplayedScrollingRowIndex获取。。。位于提供的索引位置的单元格。这是如何按照问题中的要求选择特定范围的行的?
<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
}
}
datagridview.Rows[currentRow].Cells[0];
DataGridViewRow row = dataGridView1.Rows[index row you want];
dataGridView1.CurrentRow = row;