如何在运行时以编程方式选择DataGridView
中的特定行范围?
答案 0 :(得分:101)
未经测试,但我认为您可以执行以下操作:
dataGrid.Rows[index].Selected = true;
或者您可以执行以下操作(但是再次:未经测试):
dataGrid.SelectedRows.Clear();
foreach(DataGridViewRow row in dataGrid.Rows)
{
if(YOUR CONDITION)
row.Selected = true;
}
答案 1 :(得分:26)
在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
答案 2 :(得分:11)
DataGridView.Rows
.OfType<DataGridViewRow>()
.Where(x => (int)x.Cells["Id"].Value == pId)
.ToArray<DataGridViewRow>()[0]
.Selected = true;
答案 3 :(得分:2)
试试这个:
enforceUpdateFields()
答案 4 :(得分:0)
如果您有数据源,可以使用Select方法: http://msdn.microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx
如果您的数据源中有对象,请使用linq
答案 5 :(得分:0)
<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
}
}
其中itemList是要在网格视图中选择的行列表。
答案 6 :(得分:-1)
在加载时设置DataGridView的Selected行时,请考虑在DataBindingComplete事件中进行处理,因为默认情况下可以覆盖它。
答案 7 :(得分:-1)
尝试一下:
DataGridViewRow row = dataGridView1.Rows[index row you want];
dataGridView1.CurrentRow = row;
希望有帮助!