0

我正在为用 C# 编写的 Infopath 开发 COM 插件。该插件将以按钮的形式复制光标下的文本,对其进行处理,并应粘贴格式化的输出。

一切都很完美,除了粘贴。将存储为 RTF 的数据粘贴到我正在使用的剪贴板中

this.Application.ActiveWindow.XDocument.View.ExecuteAction("Paste", Type.Missing);

这样做的问题是它弄乱了字体(一切都显示为粗体)。剪贴板中的数据是正确的。

我知道这一点,因为奇怪的是,如果我删除这一行并手动按粘贴/Ctrl+V,数据就会正确粘贴。

所以总结一下 ExecuteAction("Paste") != 手动粘贴。我可以用什么来“模拟”手动粘贴操作?

谢谢

4

1 回答 1

0

尝试通过命令栏模拟手动粘贴,如下所述:http: //social.msdn.microsoft.com/Forums/en-US/sharepointcustomizationlegacy/thread/3c7f17ee-3c7c-4efd-9cbe-66b2f8f2c2d1

它们会.View.Window.CommandBars.ActiveMenuBar根据索引进行特定控制,但您可以通过FindControl()在命令栏级别使用来使其更加健壮。

如果您使用的是 InfoPath 2010,您可能必须通过功能区而不是命令栏。

于 2012-11-02T13:42:00.327 回答