Visio绘图控件AccessViolationException添加形状

时间:2012-08-30 17:51:07

标签: c# com access-violation visio

我有一张放置Visio Drawing Control的表单。我正在使用Visio Drawing Control 11.0(我的电脑上安装了Visio 2003)。在表单加载事件中,我执行以下操作:

private void Form1_Load(object sender, EventArgs e)
{
    this.axDrawingControl1.Src = @"D:\visio test\drawing.vsd";
    Document currentStencil = this.axDrawingControl1.Document.Application.Documents.OpenEx(@"Basic_U.vss", (short)VisOpenSaveArgs.visOpenDocked);
    Window stencilWindow = this.axDrawingControl1.Document.OpenStencilWindow();
}

当我运行应用程序时,我会在文档中添加一个形状,然后应用程序崩溃并显示AccessViolationException.错误消息显示Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
但是,当我通过将DrawingControl.Src属性设置为文档的文件名来 NOT 打开文档时,应用程序工作正常,但我需要来打开文档并编辑它使用绘图控件。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可能需要等到文档完全加载。

为this.axDrawingControl1.DocumentOpened添加一个事件处理程序,并将绘图代码移动到该处理程序。