找回密码
 立即注册

QQ登录

只需一步,快速开始

Hjr2350
论坛元老   /  发表于:2013-3-12 14:58  /   查看:12519  /  回复:15
我看DEMO演示时,可以实现在当前spread中进行行拖动。
现在我有这样一个需求,我在多个spread中互相拖动行,
如我有spread1和sprad2,把spread1中的Row1拖动到spread2某个位置上
是否可以实现这样的效果。
求BZ解答,谢谢。

15 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-12 19:47:00
沙发
spread本身不支持多个Spread之间的拖动,替代方案是先选中Spread1中的区域,然后通过复制粘贴的方式粘贴到Spread2中。
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-3-13 11:08:00
板凳
我现在利用DoDragDrop的方法似乎可以实现我的需求,但是存在几个问题
首先,我发现在滚动条的Tracking可以获得当前所在的行和列值,我现在想利用spread_MouseMove方法来获得当前鼠标所在行列值(不进行点击,只是滑动状态下)如何实现?
其次,你所说的复制粘贴方法,我想在想重写复制,粘贴和剪切的方法,不知你能给我提供一些例子来参考下吗?或者具体对应事件或方法,我查找了一下相关的方法,但是没有找到,能不能指导一下,谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-3-13 14:37:00
地板
回复 3楼Hjr2350的帖子

Hjr2350 你好,
能否发个 demo 到论坛,我这边协助调试呢?
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-3-13 16:00:00
5#
回复 4楼iceman的帖子


DragDrop.rar (57.51 KB, 下载次数: 1421)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-3-13 17:56:00
6#
回复 5楼Hjr2350的帖子

可以通过以下事件捕捉 Spread 剪切板变化:
ClipboardChanged , ClipboardChanging, ClipboardPasted , ClipboardPasting 。

Demo 正在调查中。明天回复
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-3-13 18:19:00
7#
谢谢你的回复
我下午调查时发现,我利用如下的代码可以实现某一区域单元格的拷贝

  1. fpSpread1.ActiveSheet.AddSelection(info.ViewportInfo.Row, 0,1,4);
  2. fpSpread1.ActiveSheet.ClipboardCopy(ClipboardCopyOptions.All);
复制代码


  1. fpSpread2.ActiveSheet.AddSelection(fpSpread2.ActiveSheet.RowCount - 1, 0, 1, 4);
  2. fpSpread2.ActiveSheet.ClipboardPaste(ClipboardPasteOptions.All);
复制代码

但是我如果想拷贝指定某一行的数据可以吗?单元格区域复制好像不可以将单元格高宽信息进行复制,如下图效果

34027250.JPG (6.03 KB, 下载次数: 1298)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-3-14 11:05:00
8#
回复 7楼Hjr2350的帖子

请问 Hjr2350 使用的 Spread 版本是?我使用 Spread for .NET 6 ,可以正常复制行高。
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-3-14 14:10:00
9#
5.0版,关于行高不正确的问题,我已经解决了。
但现在我发现,在我选择多个不连续的单元格时,利用ClipboardCopy和ClipboardPaste进行复制粘贴时,发现只能复制我多选时的最后一个单元格;可不可以复制所有我选中的内容?
而且,我对ClipboardPaste函数的 IDataObject data的使用不是很清楚,能给我说明一下吗

  1. public void ClipboardPaste(
  2.    ClipboardPasteOptions pasteOption,
  3.    IDataObject data,
  4.    CellRange cellRange
  5. )
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-3-14 15:18:00
10#
回复 5楼Hjr2350的帖子

Hjr2350 你好,
可以通过 this.fpSpread1.GetCellFromPixel 方法获取当前鼠标悬停的活跃单元格,进而可以获取当前 RowIndex,插入行。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部