【发布时间】:2011-09-10 01:11:11
【问题描述】:
如何在运行时以编程方式选择DataGridView 中的特定行范围?
【问题讨论】:
标签: c# .net winforms datagridview
如何在运行时以编程方式选择DataGridView 中的特定行范围?
【问题讨论】:
标签: c# .net winforms datagridview
试试这个:
DataGridViewRow row = dataGridView1.Rows[index row you want];
dataGridView1.CurrentRow = row;
希望对您有所帮助!
【讨论】:
未测试,但我认为您可以执行以下操作:
dataGrid.Rows[index].Selected = true;
或者您可以执行以下操作(但同样:未测试):
dataGrid.SelectedRows.Clear();
foreach(DataGridViewRow row in dataGrid.Rows)
{
if(YOUR CONDITION)
row.Selected = true;
}
【讨论】:
read-only - 那么 SelectedRows.Clear() 将不起作用。
SelectedRows.Clear() 只会清除选定的行,但使用ClearSelection() 也会丢失列 => 列选择...
dataGrid.CurrentCell = dataGrid.Rows[row.Index].Cells[0];
DataGridView.Rows
.OfType<DataGridViewRow>()
.Where(x => (int)x.Cells["Id"].Value == pId)
.ToArray<DataGridViewRow>()[0]
.Selected = true;
【讨论】:
试试这个:
datagridview.Rows[currentRow].Cells[0];
【讨论】:
datagridview.Rows[currentRow].Cells[0] 获取...在提供的索引位置的单元格。这是如何选择特定范围的行问题?
在 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
【讨论】:
.Cells(x) 中引用的任何列都是Columns(x).Visible = True,否则会出错。使用DataGridView.FirstDisplayed 找到第一个。
<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 是要在网格视图中选择的行列表。
【讨论】:
如果您有数据源,则可以使用 Select 方法: http://msdn.microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx
如果数据源中有对象,则使用 linq
【讨论】: