0
我在使用Visio 2003進行一些自動繪圖工作。但是,我遇到了一個問題,就是MSDN提到的並將其合併到我的代碼中。我可能犯了一個非常新手的錯誤。但是,在搜索互聯網之後,我還沒有實施解決方案。基本Visio 2003 C#交互,drawingControl
我想從tbClick打開一個模具。 MSDN站點告訴我使用DrawingControl.Src打開模板。但是,當我將DrawingControl應用於代碼並編譯時,出現此錯誤:非靜態字段,方法或屬性'VisOcx.IDrawingCopntrol.Src.get'(CS0120)需要對象引用。下面是一段代碼,顯示了命名空間資源和我試圖實現的功能。
我接受任何和所有有關代碼的建議。
//namespace
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Runtime.InteropServices;
using Visio1 = Microsoft.Office.Interop.Visio;
using Visio2 = VisOcx;
//function
void Qed2_elevation_stencil_tbClick(object sender, EventArgs e)
{
try
{
Visio2.DrawingControl.Src = "C:\\Drawing.vsd";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return;
}
我覺得我更接近使此代碼的工作。我現在得到的錯誤,「不超載的‘Qed2_elevation_stencil_tbClick’匹配委託‘System.EventHandler’(CSO123)。下面是更新的代碼。謝謝你在前進的人誰願意幫助。
//
// qed2_elevation_stencil_tb
//
this.qed2_elevation_stencil_tb.ToolTipText = "QED2 Front Elevation";
this.qed2_elevation_stencil_tb.Click += new
system.EventHandler(this.Qed2_elevation_stencil_tbClick);
using System;
using System.Configuration;
using System.Collections.Generic;
using System.Collections;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Runtime.InteropServices;
using System.IO;
using Visio1 = Microsoft.Office.Interop.Visio;
using Visio2 = VisOcx;
using Visio3 = AxMicrosoft.Office.Interop.VisOcx;
public partial class MainForm : Form
{
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
private Visio1.Application VisApp = null;
private Visio1.Page VisPage = null;
private Visio1.Document VisDocument = null;
private Visio1.Documents VisDocuments = null;
private Visio1.Window VisWindow = null;
private Visio1.Document VisStencil = null;
private void Qed2_elevation_stencil_tbClick(ref Visio1.Documents visDocuments)
{
string stencilPath = System.IO.Path.Combine(@"C:\\Documents and Settings\\MGPF50\\My Documents\\Visio Stencils", @"Front Elevation Stencil.vss");
try
{
VisStencil = visDocuments.OpenEx(stencilPath,
(short)Visio1.VisOpenSaveArgs.visOpenRO
+ (short)Visio1.VisOpenSaveArgs.visOpenHidden
+ (short)Visio1.VisOpenSaveArgs.visOpenMinimized
+ (short)Visio1.VisOpenSaveArgs.visOpenNoWorkspace);
}
catch (COMException exp)
{
MessageBox.Show("Error Loading Stencil: " + stencilPath + exp.Message);
throw exp;
}
}
我已經瀏覽了網站並下載他們的代碼,感謝你的這個鏈接。使函數靜態?您指向我的網站上的應用程序具有此類功能,但它們的功能是靜態的。 – 2009-01-20 19:28:22