实现DataGridView的整行拖放
来源:互联网 发布:走进云计算 编辑:程序博客网 时间:2024/04/28 07:14
本来应该是作为旧帖“使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);
}
}
}
}
...{
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的整行拖放
- 关于datagridview拖放行排序
- 课表拖放的实现
- 拖放功能的实现
- 拖放功能的实现
- 实现窗体的拖放
- flex 拖放的实现
- 实现H5的拖放
- 控件之间拖放操作(二)-----实现Treeview节点到DataGridView
- 拖放操作-实现Treeview到Treeview和DataGridView到Treeview
- QTableWidget 实现整行拖放交换位置
- asp.net中实现Gridview的多行拖放, 以及跨控件拖放
- MFC实现对象的拖放
- VB的文件拖放实现
- HTML5之拖放属性实现图片的拖放
- 实现多行表头的DATAGRIDVIEW
- C#实现dataGridView行的合计
- DataGridView显示汇总行的实现
- YouTube 的架构扩展
- eBay 的数据库分布扩展架构
- 程序员笑话
- 学习 Flickr 的 基于 LAMP 的容量规划经验
- Second Life 的数据拾零
- 实现DataGridView的整行拖放
- 我发现……
- 随想
- 我的随想
- 1.主要是引用没有实例为空所造成的。
- Office Addin开发中,自定义工具栏CommandBarButton.Picture 属性的应用
- 编译阶段侦测相同性
- 关于三元运算符和param
- PSM过程的9条软件度量准则