zoukankan      html  css  js  c++  java
  • C#进行Visio二次开发之判断图纸是否有设备

    判断Visio图纸上是否图纸有设备(存在图元), 有两种方法,一种是通过Window对象的SelectAll方法,在判断选择的集合是否不为空即可,如下:
            /// <summary>
            
    /// 判断是否有对象选定
            
    /// </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即可,如下:
                Visio.Page page = VisioUtility.GetPage(VisDocument, "馈线图");
                
    if (page.Shapes.Count <= 0)
                
    {
                    MessageUtil.ShowTips(
    "图纸上没有设备");
                    
    return;
                }

            /// <summary>
            
    /// 获取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对象事件中有处理逻辑的时候, 如下所示, 而且有的情况下,你还不能用第一种方式来进行判断:
                this.CtrlDrawing.SelectionChanged += new EVisOcx_SelectionChangedEventHandler(ctrlDrawing_SelectionChanged);

    希望你能发现更多好玩的东西,呵呵
    转载请注明出处:
    撰写人:伍华聪  http:
    //www.iqidi.com 

    主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
    专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
      转载请注明出处:
    撰写人:伍华聪  http://www.iqidi.com 
        
  • 相关阅读:
    C++ 声明、定义、初始化、赋值
    skynet源码赏析
    python基础6函数 柒哥
    Python基础4数据类型详解下 柒哥
    Python基础1变量 柒哥
    Python基础2数据类型 柒哥
    Python基础3数据类型详解上 柒哥
    Python基础5条件分支与循环 柒哥
    PHP面试(A02)
    Envoy 配置
  • 原文地址:https://www.cnblogs.com/wuhuacong/p/1209406.html
Copyright © 2011-2022 走看看