我正在研究用C#编写的COM AddIn for Infopath。插件将采用按钮的形式,复制光标下的文本,处理它,并粘贴格式化的输出。
除了粘贴之外,一切都很完美。 将存储为RTF的数据粘贴到剪贴板中我正在使用
this.Application.ActiveWindow.XDocument.View.ExecuteAction("Paste", Type.Missing);
这个问题是它弄乱了Font(一切都显示为粗体)。剪贴板中的数据是正确的。
我知道这一点,因为奇怪的是,如果删除此行并手动按下粘贴/ Ctrl + V,数据将被正确粘贴。
总结一下ExecuteAction(“粘贴”)!=手动粘贴。我可以使用什么来“模拟”手动粘贴操作?
由于
答案 0 :(得分:0)
尝试通过命令栏模拟手动粘贴,如下所述: http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomizationlegacy/thread/3c7f17ee-3c7c-4efd-9cbe-66b2f8f2c2d1
他们根据索引通过.View.Window.CommandBars.ActiveMenuBar
到特定控件,但您可以通过在命令栏级别使用FindControl()
来使其更强大。
如果您使用的是InfoPath 2010,则可能需要浏览功能区而不是CommandBars。