天天看點

實作DataGridView中行的上下移動(C#實作)

1)        如果dgOutImage.DataSource=集合(RecFileArgs)

(向上移動)

dgOutImage.DataSource = new BindingList<RecFileArgs>(RecFileArgs1); 

//如果選擇的是多行

if (dgOutImage.SelectedRows.Count > 1)

 {

     return;

 }

 dgOutImage.Focus();

//目前選擇的行号

   int rowIndex = dgOutImage.CurrentRow.Index;

        if (rowIndex != 0)

        {

       RecFileArgs _reccCurr = dvrPlayListRight[rowIndex];

       RecFileArgs _reccPer = dvrPlayListRight[rowIndex - 1];

       dvrPlayListRight[rowIndex] = _reccPer;

       dvrPlayListRight[rowIndex - 1] = _reccCurr;

       dgOutImage.DataSource = dvrPlayListRight;

       dgOutImage.Refresh();

       dgOutImage.Rows[rowIndex - 1].Selected = true;

       dgOutImage.CurrentCell = dgOutImage.Rows[rowIndex - 1].Cells[0];

       }

if (rowIndex - 1 == 0)

       {

           向上按鈕.Enabled = false;

       }

       else

       {

           向上按鈕.Enabled = true;

   }

2)        如果dgOutImage.DataSource= DataTable

(向下移動)

object[] _rowData   =   DataTable.Rows[i].ItemArray;

DataTable.Rows[i].ItemArray   =   DataTable.Rows[i+1].ItemArray  

DataTable.Rows[i+1].ItemArray   =   _rowData;