我正在使用Microsoft Visio 2007和Visual C#。 我有一些形狀的模具。模板中每個主圖形的每個連接點都有一個名稱。我如何在C#中獲取這些名稱?在C中檢索Visio形狀的連接點名稱#
我需要一種方法來區分形狀的連接點,我認爲給每個連接點分配一個名稱是最簡單的一個。
P.S. 我將名稱分配給主形狀的所謂「ShapeSheet」中的連接點,即可以看到連接點座標的相同位置。
我正在使用Microsoft Visio 2007和Visual C#。 我有一些形狀的模具。模板中每個主圖形的每個連接點都有一個名稱。我如何在C#中獲取這些名稱?在C中檢索Visio形狀的連接點名稱#
我需要一種方法來區分形狀的連接點,我認爲給每個連接點分配一個名稱是最簡單的一個。
P.S. 我將名稱分配給主形狀的所謂「ShapeSheet」中的連接點,即可以看到連接點座標的相同位置。
以下示例使用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;
}
給定一個Shape對象,您可以使用Cells屬性獲取連接點行的X Cell。如果您使用的是PIA可以使這樣一個電話:
Visio.Shape shape ; // get the shape
Visio.Cell cell = shape.get_Cells("Connections.MyName.X");
從這個Cell對象,您可以訪問連接點行的其餘部分。
如果您使用的是不同的本地化版本的Visio,或者您計劃本地化您的應用程序,則應該調查Cells和CellsU之間的差異。
非常感謝您的回答。我沒有使用PIA。無論如何,我想要做的是檢索我與我的形狀的每個連接點相關聯的名稱。如果我正確理解你寫的是: 1 - 得到一個形狀 2 - 獲取單元格「MyName.x」 我不知道「先驗」什麼是「MyName.x」... 我是尋找一種方法來檢索所有這些名字。 謝謝;) – sciarp
謝謝你的好例子;) – sciarp