找回密码
 立即注册

QQ登录

只需一步,快速开始

插入了2个Spread表格控件,怎么在这2个控件中相互拷贝单元格内容?每次选择控件时都执行了一次OpenXml(),是因为这个问题导致剪切板被清空的吗?

9 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-4-2 14:19:00
沙发
回复 1楼oceansoft的帖子

oceansoft 你好,
不好意思,没能重现该问题,请使用我的 Demo 测试:

SilverlightApplication4.zip (30.62 KB, 下载次数: 442)
回复 使用道具 举报
oceansoft
高级会员   /  发表于:2013-4-2 14:54:00
板凳

我这边的使用场景

根据我们的使用场景,我修改了你给我的Demo中的MainPage文件,你把这个文件覆盖你那边的相同文件,就可以看出效果啦,谢谢!

MainPage.zip

1.27 KB, 下载次数: 468

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-2 18:14:00
地板
回复 3楼oceansoft的帖子

oceansoft 你好,
我使用 2013V1 版仍然没有重现问题,能发把你测试使用的 XML 文件发到论坛调试?
回复 使用道具 举报
oceansoft
高级会员   /  发表于:2013-4-3 11:26:00
5#
1.打开spread designer,在一个单元格中随便输入内容xxx。
2.选中输入xxx的单元格,执行ctrl+c。
3.点击文件菜菜单中的import选择一个xml导入。
4.选择一个单元格,执行ctrl+v,内容未被拷贝到这个单元格中。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-3 14:03:00
6#
回复 5楼oceansoft的帖子

oceansoft 你好,
请你在粘帖时通过 ClipBoard.GetText() 查看,剪切板中是否有值?
回复 使用道具 举报
oceansoft
高级会员   /  发表于:2013-4-3 15:25:00
7#
按照我5楼的描述,执行步骤4时,用ClipBoard.GetText() 查看,剪切板中是没有值的。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-3 15:57:00
8#
回复 7楼oceansoft的帖子

oceansoft 你好,
可以通过代码记录 ClipBoard 中数据,下面代码是实现大体思路:
  1. string test = "";
  2.         private void gcSpreadSheet1_ClipboardChanged(object sender, EventArgs e)
  3.         {
  4.             test = Clipboard.GetText();
  5.         }

  6.         private void gcSpreadSheet2_ClipboardPasting(object sender, GrapeCity.Windows.SpreadSheet.UI.ClipboardPastedEventArgs e)
  7.         {
  8.             Clipboard.SetText(test);
  9.         }
复制代码
回复 使用道具 举报
oceansoft
高级会员   /  发表于:2013-4-3 16:49:00
9#
参考例子,在控件释放之前保存剪切板内容到临时变量,控件释放之后再将这个变量内容设置到剪切板中,解决了这个问题,谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-3 17:00:00
10#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部