datagridview 移動行

今天遇到一個有趣的問題,有人想實現datagridview的選中行上下移動,粗略找了下msdn沒有相關屬性和方法,隨即自己寫了一個

考慮幾點問題,由於進行數據綁定的datagridview是不能直接控制其行來上下移動插入等操作的,所以改爲直接操作其數據源,上移

就是刪除原來的,然後添加一個新的到原位置-1的地方,基本思路就是這樣了,下移差不多吧

簡單代碼如下: 

 

if (dataGridView1.SelectedRows.Count == 0)
            {
               
return;
            }
            DataTable dt
=(DataTable) this.dataGridView1.DataSource;
           
           
int= this.dataGridView1.Rows.IndexOf(dataGridView1.SelectedRows[0]);
           
object [] ot = dt.Rows[i].ItemArray;
            DataRow dr
= dt.Rows[i];
            dt.Rows.Remove(dr);
            DataRow drs
= dt.NewRow();
            drs.ItemArray
= ot;
            dt.Rows.InsertAt(drs, i
- 1);
           
foreach (DataGridViewRow dgvr in dataGridView1.SelectedRows)
            {
                dgvr.Selected
= false;
            }
           
            dataGridView1.Rows[i
- 1].Selected = true;
            dataGridView1.CurrentCell
= dataGridView1.Rows[i-1].Cells[0];

發佈了26 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章