Datagridview - 如何设置所选行的箭头?

Datagridview - How to set the arrow of selected row?

我有一个 DataGridView,我在其中为行创建了 MoveUp 和 MoveDown 函数。但是当我交换两行并更改选定的行时,尽管我将选定的行设置在交换的行上,但选定行的箭头仍停留在前一个位置。我可以更改正确行上的箭头吗?这只是一个小细节,但我想知道是否可以做到。

我有这个代码:

    private void moveUp()
    {
        if (dataGridView1.RowCount > 0)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                int rowCount = dataGridView1.Rows.Count;
                int index = dataGridView1.SelectedCells[0].OwningRow.Index;
                if (index == 0)
                {
                    return;
                }
                var temp = listApp[index];
                var temp2 = listApp[index - 1];
                listApp.Remove(temp);
                listApp.Remove(temp2);
                listApp.Insert(index-1, temp);
                listApp.Insert(index, temp2);
                dataGridView1.DataSource = null;
                dataGridView1.DataSource = listApp;
                dataGridView1.SelectedCells[0].Selected = false;
                //dataGridView1.Rows[index].Selected = false;
                dataGridView1.Rows[index-1].Selected = true;
            }
        }
    }

这是交换两行后的屏幕。

或者有更好的方法吗?

好的,我自己找到了解决办法。设置dataGridView1.CurrentCell就够了。也许对某人有用。 解决方案在这里:

    private void moveUp()
    {
        if (dataGridView1.RowCount > 0)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                int rowCount = dataGridView1.Rows.Count;
                int index = dataGridView1.SelectedCells[0].OwningRow.Index;
                if (index == 0)
                {
                    return;
                }
                var temp = listApp[index];
                var temp2 = listApp[index - 1];
                listApp.Remove(temp);
                listApp.Remove(temp2);
                listApp.Insert(index-1, temp);
                listApp.Insert(index, temp2);
                dataGridView1.DataSource = null;
                dataGridView1.DataSource = listApp;
                dataGridView1.SelectedCells[0].Selected = false;                    
                dataGridView1.Rows[index-1].Selected = true;
                dataGridView1.CurrentCell = dataGridView1[1, index - 1];
            }
        }
    }