2011-07-13 33 views
3

我正在使用Microsoft Visio 2007和Visual C#。 我有一些形狀的模具。模板中每個主圖形的每個連接點都有一個名稱。我如何在C#中獲取這些名稱?在C中檢索Visio形狀的連接點名稱#

我需要一種方法來區分形狀的連接點,我認爲給每個連接點分配一個名稱是最簡單的一個。

P.S. 我將名稱分配給主形狀的所謂「ShapeSheet」中的連接點,即可以看到連接點座標的相同位置。

回答

3

以下示例使用Cell Indices來循環連接點行中的所有X單元。 RowName屬性用於獲取該節中每一行的名稱。

Visio.Shape shape = // get the shape 

List<string> listOfNames = new List<string>(); 

// Loop through all the connection point rows in the shape. 
short iRow = (short) Visio.VisRowIndices.visRowConnectionPts; 
while (shape.get_RowExists(
    (short) Visio.VisSectionIndices.visSectionConnectionPts, 
    iRow, 
    (short) 0) != 0) 
{ 
    // Get a cell from the connection point row. 
    Visio.Cell cell = shape.get_CellsSRC(
     (short) Visio.VisSectionIndices.visSectionConnectionPts, 
     iRow, 
     (short) Visio.VisCellIndices.visCnnctX); 

    // Ask the cell what row it is in. 
    listOfNames.Add(cell.RowName); 

    // Next row. 
    ++iRow; 
} 
+0

謝謝你的好例子;) – sciarp

1

給定一個Shape對象,您可以使用Cells屬性獲取連接點行的X Cell。如果您使用的是PIA可以使這樣一個電話:

Visio.Shape shape ; // get the shape 
Visio.Cell cell = shape.get_Cells("Connections.MyName.X");    

從這個Cell對象,您可以訪問連接點行的其餘部分。

如果您使用的是不同的本地化版本的Visio,或者您計劃本地化您的應用程序,則應該調查CellsCellsU之間的差異。

+0

非常感謝您的回答。我沒有使用PIA。無論如何,我想要做的是檢索我與我的形狀的每個連接點相關聯的名稱。如果我正確理解你寫的是: 1 - 得到一個形狀 2 - 獲取單元格「MyName.x」 我不知道「先驗」什麼是「MyName.x」... 我是尋找一種方法來檢索所有這些名字。 謝謝;) – sciarp