【发布时间】:2016-03-08 12:35:14
【问题描述】:
我正在尝试使用 Visio 应用程序事件。在实例化新的 Application 对象并设置任何事件(即 BeforeDocumentClose)时,这似乎会导致在最小化 Visio 窗口后无法恢复它。
我正在使用 VS/C# 2013、Windows 窗体、Visio 2013(在 Windows 7 上)。虽然我的主要代码项目是使用插件在各种办公应用程序之间实现巨大的交换,但以下简单代码重现了相同的问题。它是一个 Windows 窗体项目(添加了对 Microsoft.Office.Interop.Visio 的引用)。
using Visio = Microsoft.Office.Interop.Visio;
Visio.Application app;
bool initialised = false;
private void visioButton_Click(object sender, EventArgs e)
{
init();
app.Documents.Add("c:\\test.vst"); // creates new document from template
}
void init()
{
if (!initialised)
{
// only initialise once
app = new Visio.Application();
app.BeforeDocumentClose += app_BeforeDocumentClose;
initialised = true;
}
}
void app_BeforeDocumentClose(Visio.Document doc)
{
}
问题 #1:这是主要问题。创建一个或多个 Visio 文档时,Visio 窗口在最小化后没有最大化。据我所知,没有抛出异常。 Windows 只是发出声音错误“ping”。
问题 #2:这是次要问题。创建两个或多个 Visio 文档,将鼠标悬停在 Windows 任务栏上,预览窗口显示等待光标而不是正常的文档预览。
条件:问题 #1 仅在在应用程序上使用事件时发生。文档、页面/形状事件不会导致任何问题。所有事件都被很好地捕获。问题 #2 总是会发生,但这对我来说不太重要。
我一直在寻找这个问题一段时间,但找不到任何相关的东西,所以非常感谢任何帮助。
【问题讨论】:
标签: c# .net office-interop visio