现在的位置: 首页 > 综合 > 正文

datagridview 移动行

2013年10月19日 ⁄ 综合 ⁄ 共 880字 ⁄ 字号 评论关闭

今天遇到一个有趣的问题,有人想实现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];

抱歉!评论已关闭.