找回密码
 立即注册

QQ登录

只需一步,快速开始

ChinaBoyZY
论坛元老   /  发表于:2013-9-11 16:33  /   查看:6090  /  回复:3
dof,你好!最近使用FpSpread遇到个棘手的问题。
在FpSpread上的多个单元格中填写了数据,然后向多选后,复制,粘帖到其他列。多项是可以的,但是,粘帖的时候却只粘帖了最后选中的那个值。请问有什么方法实现多选复制,粘帖吗?
如图所示

粘帖.JPG

7.85 KB, 下载次数: 413

粘帖后,只有最后选择的那个值

多选.JPG

5.63 KB, 下载次数: 438

多选

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-9-11 18:42:00
沙发
回复 1楼ChinaBoyZY的帖子

ChinaBoyZY 你好,

这是 Spread 的默认行为,复制不连续单元格,则粘帖最后一个单元格数据。

如果想连续复制,需要截获键盘事件,操作剪切板例如:

  1.        void fpSpread1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
  2.         {
  3.             if (e.Control&&e.KeyCode== Keys.C)
  4.             {
  5.                 FarPoint.Win.Spread.Model.CellRange cr = new FarPoint.Win.Spread.Model.CellRange(3, 1, 13, 1);
  6.                 this.fpSpread1.Sheets[0].AddSelection(2, 1, 12, 1);
  7.                 this.fpSpread1.Sheets[0].ClipboardCopy(cr);
  8.             }
  9.         }
复制代码
回复 使用道具 举报
ChinaBoyZY
论坛元老   /  发表于:2013-9-13 09:04:00
板凳
谢谢,但是这样不行的。算了没这个不弄了。
再请教一个问题,整列复制。粘帖,怎么实现啊?就是点击“予定”列,把“予定”列中的所有颜色块都粘帖到“实际”列中。并且列名“予定”,“实际”不能改变。

复制.JPG

13.02 KB, 下载次数: 438

点击“予定”列,选中整列,然后复制

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-13 11:29:00
地板
回复 3楼ChinaBoyZY的帖子

你好,
实现方法:
1.通过 CellClick 事件捕获
2.判断是否点击ColumnHeader
3.通过 CopyRange 进行复制粘贴。
请使用以下代码测试:

  1. private void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
  2.         {
  3.             if (e.ColumnHeader)
  4.             {
  5.                 this.fpSpread1.Sheets[0].CopyRange(0, e.Column, 0, e.Column + 1, this.fpSpread1.Sheets[0].RowCount, 1, false);
  6.             }
  7.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部