实现DataGridView的整行拖放

原创 2007年09月30日 00:52:00

本来应该是作为旧帖“使DataGridView支持数据拖放(DragDrop)”中一个关于DataGridView整行拖放的问题帖的回复,但不知为什么提交回复总是报错,怕自己事后忘记了回复,干脆作新帖发布。那位回复的朋友说使DataGridView支持数据拖放 是"地球人都知道的",这个确实如此,日光之下就没有新鲜事

DataGridView的整行拖放其实也不难实现,这里我简单做了一个测试,实现两个DataGridview之间的整行拖放。因为还算简单,我把思路讲解一下,代码也不会全部贴上来了。

通过DataGridView的SelectedRows属性,可以得到DataGridView所有被选择的行,这一点应该也是地球人都知道的,那么在目标控件的DragDrop事件中判断源DataGridView的SelectedRows是否存在被选择的行,然后遍历取出所有被选择行的数据并做相应处理就可以了。这里只贴出目的控件的DragDrop事件代码,全部代码。
 

private void dataGridView2_DragDrop(object sender, DragEventArgs e)
        
...{
        
                
if (e.Data != null)
                
...{
                     
//在源DataGridVeiw的MouseMove事件中调用DoDragDrop,直接把源DataGridView作为参数传递过来
                     
//这里取出Data属性里面的传递过来的DataGridview进行操作
                    DataGridView aa = (DataGridView)e.Data.GetData(typeof(DataGridView));
                     
//遍历源DataGridView的SelectedRows,得到每一个被选中的行的索引
                    foreach (DataGridViewRow dgr in dataGridView1.SelectedRows)
                    
...{
                        Class1 cc 
= new Class1();
                         
//通过行的索引从源DataGridview绑定的数据源中得到相应的数据
                        cc.Bbb = (bindingSource1.List[dgr.Index] as Class1).Bbb;
                        cc.Bbb1 
= (bindingSource1.List[dgr.Index] as Class1).Bbb1;
                         
//添加到目的DataGridView所绑定的数据源
                        bindingSource2.Add(cc);
                    }

             
                }

            }

        
        }

代码比较粗糙,仅仅只是说明一下实现思路。 

dataGridView 如何实现行行的拖动,即行之间相互交换位置

private void dataGridView_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)         {  ...
  • soarheaven
  • soarheaven
  • 2008年11月10日 15:50
  • 2887

c#.net datagridview内部行拖动,也就是拖动交换行

  • 2009年05月06日 15:01
  • 4KB
  • 下载

C# dataGridView表格,可以鼠标拖动替换单元格行

需要实现dataGridView中的 CellMouseMove、DragDrop、CellMouseDown、SelectionChanged、DragEnter 5个事件。 代码如下: ...
  • selaginella
  • selaginella
  • 2016年04月25日 12:24
  • 1179

使DataGridView支持数据拖放(DragDrop)

做一个自定义用户组件时考虑在TreeView组件和DataGridView组件之间支持拖放,DataGridView作为拖放的目标对象。本来想在网络上找现成的代码片段,但遗憾的是找到的几乎全是从Dat...
  • dekko
  • dekko
  • 2007年07月07日 22:29
  • 5479

C# 从DataGridView中拖放数据到TreeView

  • 2012年07月27日 11:01
  • 71KB
  • 下载

实现DataGridView的整行拖放

本来应该是作为旧帖“使DataGridView支持数据拖放(DragDrop)”中一个关于DataGridView整行拖放的问题帖的回复,但不知为什么提交回复总是报错,怕自己事后忘记了回复,干脆作新帖...
  • dekko
  • dekko
  • 2007年09月30日 00:52
  • 3232

datagridview 整行上移下移

设计器中只是添加了按钮和datagridview,把datagridview的selectionMode设置为FullRowSelectprivate DataTable dt;//定义一个datat...
  • zhaochunyang2000
  • zhaochunyang2000
  • 2011年02月28日 16:41
  • 5468

dataGridView整行选择模式

 dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
  • glumtree
  • glumtree
  • 2007年09月20日 11:39
  • 4325

DataGridView单击选中整行

//设置为整行被选中 this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;...
  • QingHeShiJiYuan
  • QingHeShiJiYuan
  • 2015年09月18日 14:36
  • 719

C# 一个DataGridView 行们的拖拽

昨天摸索了下午,看了网上的很多实例代码,发现真心不能用,哪是什么拖拽,明明就是直接的删除嘛,基本的代码写的都一样,所以自己写啦,试着摸索...
  • plato_2
  • plato_2
  • 2013年12月20日 08:29
  • 857
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现DataGridView的整行拖放
举报原因:
原因补充:

(最多只允许输入30个字)