gw0506 发表于 2016-9-12 11:00:09

mindrayguowei 发表于 2016-9-11 19:14
好像可以通过捕捉到Ctrl V事件来实现的

只取其中的PlainText是可以,不过也不完善。
1. 他会根据你粘贴到的位置前的样式走,应用到所有PlainText上。
2. 你需要处理键盘,还要处理contextmenu,也就是鼠标右键。
3. 需要判的条件似乎也不少,因为其他时候还是应该正常复制的,等于我们单独开了一个口子。

不过如果真的是需求必须这样,那也没办法了。不过我总觉得这个全选容易选中table的情况其实在Word里也一直有,所以用户应该可以理解。为了这个单独开个口子,总觉得风险多了一点。

mindrayguowei 发表于 2016-9-14 17:51:36

这个Ctrl Z撤销还是有问题, 当我导入的是一个复杂的二进制串的时候, 再撤销就会导致模板乱掉. 附件里是新的demo, 我把数据库里面两个blob类型的字段数据写到了20 和30两个二进制文件里了, 点击粘贴后会把这两个文件的数据导入到模板中的两个框里面, 然后一撤销就乱了.

gw0506 发表于 2016-9-14 18:11:09

我用这个demo,没有重现:
1. 运行应用
2. 点击多次粘贴按钮
3. 多次Ctrl+Z,没有任何变化。

mindrayguowei 发表于 2016-9-18 14:14:41

本帖最后由 mindrayguowei 于 2016-9-18 14:16 编辑

你说的没有任何变化, 是 Ctrl + Z没有撤销成功, 还是没有乱掉?

我只要粘贴两次, 再Ctrl + Z, 就会出现这样的问题F:\\1.jpg
就是说在框外面的检查所见会跑到框里面去

mindrayguowei 发表于 2016-9-18 14:24:39

撤销乱掉的demo,上传一个新的, 有一点点不同

gw0506 发表于 2016-9-18 18:51:57

问题在这一句:
_textControl.Selection.Load(content, BinaryStreamType.InternalFormat);
调2次 SetTableCellValue 的时候,第二次selection.load之后会覆盖第一次的数据,导致内部的undolist乱了。
你改一下,不要用load,直接设置teableCell的Text。这样就正常了。

mindrayguowei 发表于 2016-9-20 17:56:03

这个是文件是二进制内容, 不能直接设置teableCell的Text吧?
我们发现是另外的问题, 模板保存的时候没有用InternalUnicodeFormat保存导致的.
这个问题基本已经解决, 暂时没有发现别的问题了

gw0506 发表于 2016-9-20 18:58:33

最终有时和字符集有关~~~看来这条经验需要铭记。哈哈~
页: 1 [2]
查看完整版本: 关于Ctrl-Z 撤销的问题