Visio 中的形状连接器

2023-12-05

我正在使用 C# 在 Studio 2010 中编写 Visio 2010 的加载项。我需要阅读当前在 Visio 中打开的图表。我知道如何阅读图表的形状。

问题是

  1. 如果我有一个形状对象,其属性可以给我页面上的形状和其他形状(如果有)的坐标,当前的形状与,
  2. 如果我有一个连接器对象,哪些属性可以给我它连接的形状和连接的方向。

Visio 中的连接是通过 Connect 对象处理的。每个形状都有传入连接对象和传出连接对象的集合。它们的名称分别是 FromConnects 和 Connects。

每个连接对象都有一个 FromSheet 和 ToSheet 属性,它们只是指向 Shape 对象的指针,FromSheet 形状是连接到 ToSheet 形状的形状。

因此,如果您有一个正方形(shape1)通过连接线(连接器)连接到另一个正方形(shape2),那么您实际拥有的是: 连接器连接到 shape1 连接器连接到 shape2

因此,在 shape1 上,您将查看 FromConnects 并看到一个 Connects 项,其中 FromSheet 引用连接器,而 ToSheet 引用 shape1。 形状 2 是相同的。 如果您查看连接器形状上的“连接”,您会看到相同的“连接”项,并引用了相同的对象。

因此,要确定 shape1 是否连接到 shape2 或反之亦然,只需查看连接器上的顺序即可...连接对象 1 将是“从”形状,而连接对象 2 将是“到”形状。

以下是两个 VBA 例程,它们将 Incoming 和 Outgoing 粘合到传入的形状上,并返回一个集合对象。我知道您说过您使用的是 C#,但我使用 Visio 的 VBA。该代码仅说明原始连接信息。我建议你尝试使用 VBA 来看看这一切是如何工作的,因为它仍然让我感到困惑。

Public Function GetShapesThatConnectTo(TheShp As Visio.Shape) As Collection
    Dim Result As Collection
    Set Result = New Collection
    For i = 1 To TheShp.FromConnects.Count
        Result.Add TheShp.FromConnects.Item(i).FromSheet
    Next i
    Set GetShapesThatConnectTo = Result
End Function

Public Function GetWhatShapeConnectsTo(TheShp As Visio.Shape) As Collection
    Dim Result As Collection
    Set Result = New Collection
    For i = 1 To TheShp.Connects.Count
        Result.Add TheShp.Connects.Item(i).ToSheet
    Next i
    Set GetWhatShapeConnectsTo = Result
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visio 中的形状连接器 的相关文章

  • 是否可以更改 WPF 控件的父级

    是否可以更改 WPF 控件的父控件 这是一个例子 StackPanel堆栈1有Buttonbtn1 在里面 还有一个空的StackPanel堆栈2 我想以编程方式将 btn1 移动到 stack2 谢谢您的帮助 您可以通过以下方式执行此操作
  • C++ 析构函数和函数调用顺序

    假设我有以下代码片段 Foo foo return bar 现在 C 标准是否保证 bar 将在 foo Foo 之前调用 或者这是编译器 实现的选择 Thanks 这是有保证的行为 实际执行过程如下 0 enter block scope
  • 在opencv中保存帧而不压缩

    我正在尝试使用写 OpenCV 函数 我想保存帧 TIFF扩大 我遇到的问题是保存的图像被压缩 所以我无法使用它们 知道如何摆脱这种压缩吗 提前致谢 不要介意西奇说的话 TIFF 标志通过 LZW 压缩硬编码在 opencv 二进制文件中
  • 获取 WSA 错误代码的格式化消息

    我在 win32 C 应用程序中使用winsock2 我将使用 MessageBox 显示可以通过调用 WSAGetLastError 检索的网络错误 我怎样才能做到这一点 我看到 FormatMessage 但我不明白如何使用它 例如 以
  • 如何让我的方法等待所有线程完成?

    我有一个方法可以触发线程来完成一些工作 将有 2 个线程异步运行一段时间 当调用它们的回调方法时 回调会触发另一个线程 直到所有工作完成 如何让我的方法等待所有这些线程完成并被触发 如果这是 Net 4 0 您可以使用CountdownEv
  • F1 2019 UDP解码

    我目前正在为 F1 方向盘开发自己的显示器 F1 2019 由codemasters提供 通过UDP发送数据 该数据存储在字节数组中 我在解码返回的数组时遇到一些问题 问题是我得到了很多信息 但我不知道如何处理它们 我将向您介绍我所尝试过的
  • 如何更改 GridView 内 ListViewItemPresenter 中的 SelectedBackground

    我在 SubSection 中有一个 Clickable Gridview
  • 将 CryptoStream 解密为 MemoryStream

    我编写了一个过程 其中文件被加密并上传到 Azure 然后必须解密下载过程 这会失败并出现 填充无效且无法删除 错误 或 要解密的数据长度为无效的 错误 我在网上尝试了很多解决方案 包括C 使用 RijndaelManaged 和 Cryp
  • JObject ToString 与 StringEnumConverter 不起作用

    我正在尝试序列化一个匿名类 如下所示 public enum ErrorCode A B C var response JObject FromObject new Error new Message Test Code ErrorCode
  • 如何设置属性选择器的值 Expression>

    我需要使用模式工厂的想法将 Person 类实体中的实体属性 Address 与 FactoryEntities 类中的表达式 linq 相关联 看看这就是我所拥有的并且我想要做的 Address address new Address a
  • 提高 ASP.NET/C# 编译速度的最佳方法是什么?

    更新 请将您的答案集中在硬件解决方案上 您使用什么硬件 工具 插件来提高 ASP NET 编译和首次执行速度 我们正在寻找固态硬盘来加快速度 但现在价格确实很高 我现在有两个 RAID 0 的 7200 rpm 硬盘 但我对性能不再满意 所
  • C# 中的异步方法如何工作?

    我在我的一些项目中使用异步方法 我喜欢它 因为它使我的应用程序更具可扩展性 但是 我想知道异步方法如何在后台真正工作 NET 或 Windows 如何知道调用已完成 根据我进行的异步调用的数量 我可以看到创建了新线程 但并不总是 为什么 此
  • std::atomic 是否会阻止非原子变量对原子变量进行重新排序

    问题很简单 问 如果我有 settings N STNGS used by many threads std atomic
  • C++ 中的静态虚函数

    我有一个基类和一个派生类 我想更改基函数 同时保持它们静态 因为它们应该作为静态传递给其他函数 我怎样才能做到这一点 ATL 框架通过将基类设为模板 然后让派生类将其类类型作为模板参数传递 从而绕过了无虚拟静态的限制 然后 基类可以在需要时
  • 如何使用 GCC 在 C 上编译库?

    我用这些文件创建了一个库pila h and pila c 我编译文件pila c with gcc pila c c这个库运行良好 我已经测试过了 然后我又做了一个图书馆 这个库有文件pila funciones extra h and
  • Web 服务无法使用 GAC 中的类型创建类型错误

    遇到一个不寻常的问题时 我似乎喜欢做一些不常见的事情 我有一个复合控件 它检查给定的 Web 服务文件是否存在于我的应用程序的根目录中 如果不存在 它会在标记中创建带有必要指令的文件以进行滚动 如下所示 反过来 它被保存到输出中 完成此步骤
  • C# - 平移光标

    我正在 PictureBox 控件中实现大图像的平移 并且设置适当的方向平移光标没有问题 但是 我似乎找不到用于平底锅原点的图像 内部带有箭头的圆圈 我在哪里可以找到它 我觉得image您正在寻找的内容未包含在框架中 每个应用程序都使用自己
  • 如何让c代码执行hex机器代码?

    我想要一个简单的 C 方法能够在 Linux 64 位机器上运行十六进制字节码 这是我的 C 程序 char code x48 x31 xc0 include
  • 我如何将 C++ 与 VALA 混合起来

    我需要用 C 编写跨平台的 GUI 应用程序 但由于 C 的大多数 GUI 库都有点乏味 而且我对 C NET 非常熟悉 我发现使用 GTK 的代码 Vala 代码非常有趣 并且与其他方式相比有点容易 那么我该如何将 VAlA 与 C 混合
  • 我该怎么做才能完全关闭与mcu的tcpClient连接?

    我现在正在研究与 ESP32 中运行的 tcp 服务器的 tcp 套接字连接 通信工作正常 但我无法关闭连接 在搜索关闭 重置 tcpClient 上的解决方案后 似乎关闭 tcpClient 的正确方法应该是 tcpClient GetS

随机推荐

  • django - 为什么 request.POST 对象不可变?

    正如标题所问的 为什么 Django 人员决定使用 querydict 来实现 request POST 对象 当然 这反过来又使整个事情变得不可变 我知道你可以mutify通过复制帖子数据来实现 post request POST cop
  • 如何在 clang 中列出支持的目标架构?

    目前我对 ARM 感兴趣 特别是 iPhone Android 目标 但我只是想更多地了解 clang 因为感觉它会在未来几年发挥重要作用 I tried clang cc1 help grep i list clang cc1 help
  • 单击父级为面板的另一个应用程序的窗口时如何将表单移动到前台

    我使用下面的代码来启动应用程序并将其移动到我的表单上的面板中 在这个例子中我使用记事本 仅作为示例 稍后我将使用不同的应用程序 当另一个应用程序移动到我的表单前面时 我只能通过单击标题栏将我的表单移动到前台 如果我单击 MDI 子区域 记事
  • 为页脚建立正确的对齐方式

    我只是使用不同的 UI 框架检查页脚以使其更好 我尝试对齐它 但它无法正常工作 右侧没有重叠 我尝试使用 div 并应用样式来设置不同的元素 我遇到的问题是文本Follow按钮后面的内容需要与图标和图像 输入表单 按钮和文本 关注 对齐 并
  • 在 Linux 内核中查找方法 __kernel_vsyscall 时遇到问题

    我正在Linux内核中寻找用于进行系统调用的 kernel vsyscall方法 我想观察它的代码以了解更多信息 但我的 grep 搜索似乎无法找到它 而且我在互联网上找不到它的位置 谁能告诉我它的确切位置吗 它可以被操纵吗 谢谢你的帮助
  • 自动回发属性不适用于选项卡容器

    我正在我的酒店管理系统门户网站上应用全球化 但遇到了一个问题 我的问题是 我有一个包含英语和西班牙语两种语言的下拉列表 并且我设置了 autopostback true 因此我从下拉列表中选择西班牙语我的网页通过调用下面的方法成功地将英语转
  • ANSI JOIN 与非 ANSI JOIN 查询的性能是否会有所不同?

    我的业务逻辑包含在大约 7000 行 T SQL 存储过程中 其中大多数都具有以下 JOIN 语法 SELECT A A B B C C FROM aaa AS A bbb AS B ccc AS C WHERE A B B ID AND
  • 如何扩展类实例

    MyClass定义于module py 我们没有办法修改它 但我们确实知道类定义如下所示 class MyClass def method self msg print from method msg 我首先导入模块 然后声明对象的实例 i
  • 在浏览器中为节拍器准确计时声音[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想创建一个虚拟节拍器并在每一步中播放节拍器声音 常用方法如setTimeout setInterval 不够准确 我怎样才能让它在不延迟或不掉节拍
  • DB2 有“插入或更新”语句吗?

    从我的代码 Java 中 我想确保执行代码后数据库 DB2 中存在一行 我的代码现在做了一个select如果没有返回结果 它会执行insert 我真的不喜欢这段代码 因为它使我在多线程环境中运行时面临并发问题 我想要做的是将这个逻辑放入 D
  • 如何通过其他列的条件按行值提取数据框?

    我有一个数据框如下 values a 003C 003P1 003P1 003P1 004C 004P1 004P2 003C 003P2 003P1 003C 003P1 003P2 003C 003P1 004C 004P2 001C
  • 如何通过 UIViewRepresentable 访问 goBack 和 goForward

    我通过 UIVewRepresentable 在 SwiftUI 中添加了 WKwebview 我很难获得一些按钮来使网络视图后退和前进 下面是我制作的两个课程 但我什至没有让打印工作 也许是一个错误 import SwiftUI impo
  • 如何通过 3G 连接检查互联网连接状态?

    我有以下方法 public static bool IsNetworkConnected ConnectionProfile InternetConnectionProfile NetworkInformation GetInternetC
  • 新字符串列表在 LINQ 初始化时打乱列表元素的顺序

    在我的 ASP NET 5 API 项目遇到一些挫折后 我决定将其重建为较旧的 WebApi 2 项目 我正在尝试从 LINQ 查询生成 2 个字符串的集合列表 最初是 2 元素字符串数组的列表 现在是字符串列表的列表 下面是在 ASP N
  • PHP - 比较不同格式的日期[重复]

    这个问题在这里已经有答案了 日期格式 date1 16 MAR 2015 date2 04 FEB 15 我怎样才能检查是否 date1 lt date2 date1 gt date2 我需要将日期格式转换为 date1 16 3 2015
  • 如何在 PHP 中回显 HTML?

    我想有条件地输出 HTML 来生成页面 那么在 PHP 4 中回显多行 HTML 片段的最简单方法是什么 我需要使用像 Smarty 这样的模板框架吗 echo n I m sure there s a better way echo n
  • 将 JavaScript 自定义类型从 InvokeScript 返回到 C#,并保留自定义类型结构

    我正在 WebBrowser 控件上使用 InvokeScript 尝试使用适用于 HTML 的 Google Maps JavaScript API 制作简单的地图 我在 JavaScript 的 HTML 页面中编写了一些函数来处理地图
  • 插入后一小时后的日期时间。夏令时

    我注意到 当我向表中插入某些日期时 MySql 数据库会从 DateTime 对象中减去一个小时 例子 Insert 2021 03 29 11 44 14 938 Result 2021 03 29 10 44 14 938 我正在插入
  • 为什么哈希函数除法只使用素数

    使用除法进行哈希意味着 h k k mod m 我读到了 m 不应该是 2 的幂 这是因为如果 m 2 p h 就变成 只是 k 的 p 个最低位 通常我们选择m作为素数 数字不太接近 2 的幂 有人可以用一个小例子解释最低阶位部分吗 我认
  • Visio 中的形状连接器

    我正在使用 C 在 Studio 2010 中编写 Visio 2010 的加载项 我需要阅读当前在 Visio 中打开的图表 我知道如何阅读图表的形状 问题是 如果我有一个形状对象 其属性可以给我页面上的形状和其他形状 如果有 的坐标 当