MS Visio试图检查"结束箭头类型"用于2个形状之间的连接

时间:2017-10-27 10:14:56

标签: .net visio

我正在尝试以编程方式(使用Microsoft.Office.Interop.Visio)从图表中读取形状和连接器并进行翻译。

Example Arrow heads connected to Shapes

我设法

  • 从形状中获取每个形状和所需的文字。
  • 找到每个连接器并获得连接器两端的形状。

我能找到的方法是找出使用哪个箭头,方形或黑色箭头(或图中使用的其他箭头)。

The items I'm trying to find in the object model

它们在UI中显示如下,但我似乎无法在对象模型中找到相应的属性。

                   For Each iConnector As Shape In iPage.Shapes
                    If iConnector.Style = "Connector" Then
                        Dim lArc As New Arc
                        If iConnector.Connects.Count = 2 Then
                            Dim lLeft = iConnector.Connects.Item(1)
                            Dim lRight = iConnector.Connects.Item(2)

这样可以左右两个连接点。如果您查看" lLeft.FromCell.Name,它将被调用" EndX"或" BeginX" 如果您再查看.ToSheet.Text,您将在开头或结尾看到形状的文本内容。

有谁知道如何从连接器形状或连接端识别箭头?

由于

2 个答案:

答案 0 :(得分:1)

识别箭头类型使用

iConnector.CellsSRC(visSectionObject, visRowLine, visLineBeginArrow)  
iConnector.CellsSRC(visSectionObject, visRowLine, visLineEndArrow)

您可以找到有关连接器there

的教程

答案 1 :(得分:0)

来自@Surrogate的文章值得一读,Drawing Visio Shapes from C-sharpcorner

我的具体问题的实际答案是

IF connector.Cells("EndArrow").Formula = "11" THEN
' you have the 11th arrowhead icon style.

注意:此处的Connector对象的类型为Visio.Shape。您可以从Shape.Style =“Connector”属性中识别连接器。