How to move gridview selected row up/down on KeyUp or Keydown press

后端 未结 7 1943
鱼传尺愫
鱼传尺愫 2020-12-11 08:19

\"enter

  1. The user selects one row
  2. there will be up arrow and down arrow.
7条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-11 09:14

        dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;//FullRowSelect
         int selectedrowindexindgv2 =-1;
          private void moveUp()
                {
                    if (dataGridView2.RowCount <= 0)
                        return;
        
                    if (dataGridView2.SelectedRows.Count <= 0)
                        return;
        
                    if (selectedrowindexindgv2 <= 0)
                        return;
        
                    DataGridViewRowCollection rows = dataGridView2.Rows;
        
                    // remove the previous row and add it behind the selected row.
                    DataGridViewRow prevRow = rows[selectedrowindexindgv2 - 1];
                    rows.Remove(prevRow);
                    prevRow.Frozen = false;
                    rows.Insert(selectedrowindexindgv2, prevRow);
                    dataGridView2.ClearSelection();
                    dataGridView2.Rows[selectedrowindexindgv2 - 1].Selected = true;
                    selectedrowindexindgv2 -= 1;
                    return;
                }
        
                private void moveDown()
                {
                    try
                    {
                        if (dataGridView2.RowCount <= 0)
                            return;
        
                        if (dataGridView2.SelectedRows.Count <= 0)
                            return;             
        
                        if (selectedrowindexindgv2 == dataGridView2.Rows.Count - 1) // Here used 1 instead of 2
                            return;
        
                        DataGridViewRowCollection rows = dataGridView2.Rows;
                        // remove the next row and add it in front of the selected row.
                        DataGridViewRow nextRow = rows[selectedrowindexindgv2 + 1];
                        rows.Remove(nextRow);
                        nextRow.Frozen = false;
                        rows.Insert(selectedrowindexindgv2, nextRow);
                        dataGridView2.ClearSelection();
                        dataGridView2.Rows[selectedrowindexindgv2 + 1].Selected = true;
                        selectedrowindexindgv2 += 1;
                    }catch(Exception) { }
        
                }
        
           private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
                {
                    if (dataGridView2.Rows.Count > 0 && e.RowIndex >= 0 && e.ColumnIndex >= 0)
                    {
                        try
                        {
                            selectedrowindexindgv2 = e.RowIndex;
        }
      private void pictureBox6Up_Click(object sender, EventArgs e)
            {
                moveUp();
            }
    
            private void pictureBox7Down_Click(object sender, EventArgs e)
            {
                moveDown();
            }        
    

提交回复
热议问题