C#进行Visio二次开发之判断图纸是否有设备
/// 判断是否有对象选定
/// </summary>
/// <param name="window"></param>
/// <returns></returns>
[CLSCompliant(false)]
public static bool HasShapeInWindow(Window window)
{
bool result = false;
try
{
window.SelectAll();
result = (window.Selection.Count > 0);
window.DeselectAll();
}
catch
{ ;}
return result;
}
另外一种方法是判断页面对象Page的Shapes对象集合是否大于0即可,如下:
if (page.Shapes.Count <= 0)
{
MessageUtil.ShowTips("图纸上没有设备");
return;
}
/// 获取Visio文档制定的页面对象
/// </summary>
/// <param name="visDocument"></param>
/// <param name="pageType"></param>
/// <returns></returns>
[CLSCompliant(false)]
public static Page GetPage(Document visDocument, string pageType)
{
Page visPage;
for (int i = 1; i <= visDocument.Pages.Count; i++)
{
visPage = visDocument.Pages[i];
if (FormulaStringToString(visPage.PageSheet.get_Cells(CUST_PROP_PREFIX + "绘图页").Formula) == pageType)
{
return visPage;
}
}
return null;
}
两种方法基本上效果一样, 第二种方法可能速度会快一些,如果你在Visio的Document对象事件中有处理逻辑的时候, 如下所示, 而且有的情况下,你还不能用第一种方式来进行判断:
C#进行Visio二次开发之判断图纸是否有设备相关推荐
- C#进行Visio二次开发之知识点考核试题
本人做过多年的Visio二次开发,根据个人的经验总结及项目积累,写了一些小小的随笔文章(具体可参考<伍华聪的Visio二次开发文章>,上月有幸给深圳一个团队做了两天的Visio培训,当了一 ...
- Visio二次开发(二)----Shape的添加和连接
先说一说为什么我要用到Visio的二次开发,现在做的项目设计到了一些电子地图,下面的这张图片是美工画的一张地铁里面门禁布局图,而这些图在做项目的时候是需要用Visio画的,有提前画好的直接加载到项目中 ...
- C#进行Visio二次开发之图纸打印
几种打印模式 Visio的二次开发中,我们往往需要打印文档,这也是正常不过的需求,Visio的Document对象提供了下面几种打印模式: Constant Value Description vis ...
- Visio二次开发(一)----巧用Visio宏
最近做的项目中需要用到Visio二次开发,安装了Visio的SDK,还有从网上找了一些这方面的博客,Visio的SDK是全英文的,看着有点费劲,很多的东西都不知道该如何去找,不过网上的一些博客还是有一 ...
- NX二次开发-UFUN读取图纸尺寸的值UF_DRF_ask_dimension_text
NX二次开发-UFUN读取图纸尺寸的值UF_DRF_ask_dimension_text 今天发现UF_DRF_ask_dim_info这个函数不能读带附件文本的尺寸,有附加文本dim_info-&g ...
- NX二次开发-UFUN创建图纸注释uc5540
NX二次开发-UFUN创建图纸注释uc5540 NX9+VS2012#include <uf.h> #include <uf_drf.h>UF_initialize();//创 ...
- NX二次开发 UFUN创建图纸尺寸表达式抑制 UF_DRF_add_controlling_exp
NX二次开发 UFUN创建图纸尺寸表达式抑制 UF_DRF_add_controlling_exp NX8.0+VS2010#include <uf.h> #include <uf_ ...
- visio二次开发___事件篇___事件分类
用visio进行二次开发,不免要用到事件.这里把visio对象模型的所有事件列出来,方便大家查找.第一个事件列表的是按事件名称字母排序的:第二个代码片段是根据分类来展示的.需要注意的是,控件本身有一些 ...
- C#进行Visio二次开发之电气线路停电分析逻辑
停电分析,顾名思义,是对图纸进行停电的逻辑分析.在电气化线路中,一条线路是从一个电源出来,连接着很多很多的设备的,进行停电分析,有两个重要的作用:一是看图纸上的Shape元件是否连接正常,二是看哪些设 ...
最新文章
- List集合的去除重复性练习
- 22岁专访库克、B站3天涨粉百万,他将毕设树莓派扫描仪升级,繁星散落在校空!...
- matlab 人群仿真,用simulink如何实现人群搜索算法的pid参数整定
- Adnroid提高效率之资源移动
- AngelToken揭秘区块链之四大链
- sap.m.library acts as one of the two most core framework library
- 袜子商店应用:一个云原生参照应用
- java 7.函数-递归_带有谓词的Java中的函数样式-第1部分
- Vue之父组件向子组件传递数据
- Mysql ==》 单表查询
- qpython3第三方库_Python第三方库的安装 --Python3
- java栈顶元素_栈(Stack)
- JDBC和JPA调用储存过程 接收存储过程有返回值
- 1133 Splitting A Linked List
- android实战:密码箱三
- 高精度IP地址定位接口的使用场景
- 自行车电动自行车|GCC认证办理流程
- Android WIFI功能——WifiManager
- 吃饭?睡觉?打豆豆?
- 【AUTOSAR】基于RT-Thread内核的AUTOSAR在n32g上的实现