设置一下DataGrid.CurrentRowIndex 属性,试试看

解决方案 »

  1.   

    我是根据一个排序字段来实现上下移动,下面是控制按钮的代码:
    try
                {
                    int i, j;
                    string temp;                BindingManagerBase bmb = this.BindingContext[this.gg_FieldValidD_listDataGridView.DataSource, this.gg_FieldValidD_listDataGridView.DataMember];                if (bmb.Position > 0)
                    {
                        i = bmb.Position;
                        j = i - 1;                    //交换位置
                        temp = this.gg_FieldValidD_listDataGridView.Rows[j].Cells[2].Value.ToString();
                        gg_FieldValidD_listDataGridView.Rows[j].Cells[2].Value = gg_FieldValidD_listDataGridView.CurrentRow.Cells[2].Value;
                        gg_FieldValidD_listDataGridView.CurrentRow.Cells[2].Value = int.Parse(temp);
                        //排序
                        DataGridViewColumn newColumn = gg_FieldValidD_listDataGridView.Columns[2];
                        ListSortDirection direction = ListSortDirection.Ascending;
                        this.gg_FieldValidD_listDataGridView.Sort(newColumn, direction);                    //提交
                        gg_FieldValidD_listTableAdapter.Update(sjcjDataSet.gg_FieldValidD_list);                    this.gg_FieldValidD_listTableAdapter.FillGradeList(sjcjDataSet.gg_FieldValidD_list);
                        this.gg_FieldValidD_listDataGridView.CurrentCell = gg_FieldValidD_listDataGridView.Rows[j].Cells[0];
                    }
                }
                catch
                {
                    MessageBox.Show("排序值不能为空! ", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
      

  2.   

    比如第n条向下跟第n+1条互换,要使选择蓝色标志移动到第n+1条:
                        int last = dataGridView1.SelectedRows[0].Index;
                        dataGridView1.CurrentCell = dataGridView1.Rows[last + 1].Cells[1];