2010-12-01 9 views
1

Ich verwende Visio 2007, um das Organigramm zu zeichnen.
Alles funktioniert gut, aber ich habe ein Problem, wie man die Eigenschaften der Form Objekts zuzugreifen und festgelegt wird in der unten stehenden NamespaceC# + Visio 2007-Integration

Microsoft.Office.Interop.Visio.Shape 

Jede Hilfe sehr geschätzt.

Antwort

0

Was genau möchten Sie tun? Hier ist, wie ich die Texteigenschaft einer Form einstelle.

using Visio = Microsoft.Office.Interop.Visio; 

[...] (some code) 

Visio.Shape shape1 = page.Drop(currentStencil.Masters["Start/End"], 1.50, 1.50); 
shape1.Text = "John"; 
+0

Vielen Dank für Ihre Antwort. Aber was ich genau brauche, sind die benutzerdefinierten Eigenschaften der Form, abgesehen von der Eigenschaft text. –

1

Visio verwendet ausgiebig eine so genannte Zelle, die Excel-Zellen ähnelt. Um einen Zellbezug von einer Form zu erhalten:

Visio.Cell aCell = shape1.Cells("Prop.XXXX"); 

XXXX der Name der Eigenschaft ist. Um den Wert der Zelle zu erhalten:

aCell.FormulaU 
2

Es kann helfen, nicht nur Sie, sondern auch andere .. :)

Imports Microsoft.Office.Interop.Visio Public Class VisioMain

Dim currentStencil As Document 
Dim currentPage As Page 

Private Sub VisioMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    currentPage = DC.Document.Pages(1) 
    SetLandscape(currentPage) 

    currentStencil = DC.Document.Application.Documents.OpenEx("Rack-mounted Equipment (US units).VSS", VisOpenSaveArgs.visOpenDocked) 

    Dim stencilWindow As Window 
    stencilWindow = currentPage.Document.OpenStencilWindow 
    stencilWindow.Activate() 
End Sub 

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click 

    ''Code to get individual property of Shape...........! 
    For Each objShape As Microsoft.Office.Interop.Visio.Shape In currentPage.Shapes 
     TextBox1.Text = objShape.Cells("Prop.Height").ResultStr("text") 
    Next 

    ''.............! 

End Sub 

Endklasse