0

此代码不起作用 - 页面大小不会改变:

canvas.Window.Application.ActivePage.PageSheet.get_CellsU("DrawingResizeType").FormulaU = "1";

画布是

AxMicrosoft.Office.Interop.VisOcx.AxDrawingControl canvas;

谁能告诉什么是错的以及如何纠正?

图像 VSD1 显示了原始图表。将值更改为 1 后,它应该看起来像 VSD2。

VSD1 VSD2

更新

好的,我用宏记录器发现这是VB代码

【VB代码】

ActiveDocument.DiagramServicesEnabled = visServiceVersion140
Application.ActiveWindow.Page.AutoSize = True
Application.ActiveWindow.Page.AutoSizeDrawing

我在 C# 中尝试了相同的方法,但它引发了 COM 异常

[C#代码]

canvas.Window.Application.ActiveDocument.DiagramServicesEnabled = (int)Visio.VisDiagramServices.visServiceVersion140;
Visio.Page p = (Visio.Page)canvas.Window.Application.ActiveWindow.Page;
p.AutoSize = true;
p.AutoSizeDrawing(); //throws COM exception 0x86DB0C89

异常详细信息 System.Runtime.InteropServices.COMException (0x86DB0C89):

发生异常。在 Microsoft.Office.Interop.Visio.IVPage.AutoSizeDrawing() 在 VisioDemo.Form1.btnReConnect_Click(Object sender, EventArgs ea) 在 C:\Form1.cs:line 121 在 System.Windows.Forms.Control.OnClick(EventArgs e ) 在 System.Windows.Forms.Button.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs 事件) 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 在System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ButtonBase.WndProc(Message& m) 在 System.Windows.Forms.Button.WndProc(Message& m) 在 System.Windows.Forms.Control。 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 上的 ControlNativeWindow.OnMessage(Message& m) System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd,

************** 加载的程序集 ************** mscorlib 程序集版本:2.0.0.0 Win32 版本:2.0.50727.5472 (Win7SP1GDR.050727-5400)

代码库:file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

VisioDemo 程序集版本:1.0.0.0 Win32 版本:1.0.0.0

代码库:file:///C:/bin/x86/Debug/VisioDemo.exe

Microsoft.Office.Interop.VisOcx 程序集版本:14.0.0.0 Win32 版本:14.0.4756.1000 代码库:file:///C:/Windows/assembly/GAC_MSIL/Microsoft.Office.Interop.VisOcx/14.0.0.0__71e9bce111e9429c/Microsoft。 Office.Interop.VisOcx.dll

4

1 回答 1

0

微软承认这个问题是真正的 Visio 问题并发布了一个补丁

http://support.microsoft.com/kb/2878227

于 2014-04-08T12:42:17.170 回答