DataGridView Selected Row Move UP and DOWN

后端 未结 13 1518
盖世英雄少女心
盖世英雄少女心 2020-12-06 01:31

How can I allow selected rows in a DataGridView (DGV) to be moved up or down. I have done this before with a ListView. Unfortunetly, for me, replacing the DGV is not an opt

13条回答
  •  无人及你
    2020-12-06 02:18

    First fill your datagridview,for example you got table with 3 colums

    DataTable table = new DataTable();
    table.Columns.Add("col1");
    table.Columns.Add("col2");
    table.Columns.Add("col3");
    foreach (var i in yourTablesource(db,list,etc))
    {
      table.Rows.Add(i.col1, i.col2, i.col2);
    }
    datagridview1.DataSource = table;
    

    Then, on button up click

    int rowIndex;
    private void btnUp_Click(object sender, EventArgs e)
    {
        rowIndex = datagridview1.SelectedCells[0].OwningRow.Index;
        DataRow row = table.NewRow();
        row[0] = datagridview1.Rows[rowIndex].Cells[0].Value.ToString();
        row[1] = datagridview1.Rows[rowIndex].Cells[1].Value.ToString();
        row[2] = datagridview1.Rows[rowIndex].Cells[2].Value.ToString();
        if (rowIndex > 0)
        {
            table.Rows.RemoveAt(rowIndex);
            table.Rows.InsertAt(row, rowIndex - 1);
            datagridview1.ClearSelection();
            datagridview1.Rows[rowIndex - 1].Selected = true;
        }
    }
    

    Do the same thing for button down, just change row index from rowIndex - 1 to rowindex + 1 in your buttonDown_Click method

提交回复
热议问题