如何在WinForms DataGrid中选择行时以编程方式将焦点设置在该行上?

dba5bblo  于 2023-06-06  发布在  其他
关注(0)|答案(2)|浏览(163)

我有一个WinForms DataGrid(不是DataGridView)。当我手动选择一行时,行指示符(如下面第一个图像所示)将显示在选定的行上。但是,如果我在保存后设置DataGrid的数据源,并使用以下命令以编程方式选择第二行:datagrid.Select(1),第二行将获得高亮显示的背景色,但焦点指示符位于第一行,如下面第二张图所示。
是否有方法使所选行获得焦点并显示该行的指示符?

smdnsysy

smdnsysy1#

由于这是旧的System.Windows.Forms.DataGrid,Row选择方法与DataGridView的略有不同。
您可以使用Select()方法选择Row。
这不会更改“当前行”。若要将行设置为当前行,可以使用CurrentRowIndex属性。
这两个选项组合在一起可以移动选区并设置“当前行”。

// Selects and highlights the Row at index 1
 dataGrid.Select(1);
 // Make the Row at index 1 the Current
 dataGrid.CurrentRowIndex = 1;

在DataGridView中类似的东西:
(One(可用于实现这一结果的方法)

// Move the focus and selects the Row at index 1
dataGridView.Rows[1].Selected = true;
// Make the Row at index 1 the Current setting the CurrentCell property
dataGridView.CurrentCell = dataGridView.Rows[1].Cells[0];
i7uq4tfw

i7uq4tfw2#

试试这个:

dataGridView1.FirstDisplayedScrollingRowIndex = 
                                dataGridView1.Rows[dataGridView1.Rows.Count - 2].Index;

相关问题