程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#進行Visio二次開發之Shape的Data1、Data2、Data3的用處(1)

C#進行Visio二次開發之Shape的Data1、Data2、Data3的用處(1)

編輯:關於C語言

我們知道,Visio的Shape對象有有3個比較特別的屬性,分別是Data1、Data2、Data3,平常我們很少用到它,因為我們如果需要屬性的話,可能會通過ShapeSheet的Customed PropertIEs中定義我們所需要的信息,需要各種屬性的值都可以拿到,那麼Data1、Data2、Data3對我們來說,就用處不大,但有的情況下,我們使用它進行一些操作卻是非常方便的。

首先我們介紹下,這幾個屬性是什麼東西,Data1、Data2、Data3是Shape的內置屬性,不需要額外定義,而且它據說可以放置64K的字符串(沒有試過這麼大的),一般來說我們是足夠放置內容的了。

言歸正題,我們什麼情況下會使用到這幾個屬性呢,大家想想,我們在繪圖的時候,是不是總有個圖框來列出圖紙那些設備有幾個的一個設備清單呢,或者是一個比例尺說明什麼的,這些場合就可以 用上它們了。

因為這些線條,可能是我們隨機畫上去的,裡面的一些設備的說明以及相關信息一般都是根據圖紙變化而變化的,因此每次保存的時候,可能要重新繪制一下,但繪制的時候,為了有別於其他設備圖元,我們使用這幾個屬性來記錄相關信息。

如我們抹掉已經畫上去的內容的時候,可以如下操作

 //把原有的統計項先抹掉
            if (VisioUtility.HasShapeInWindow(visApp.ActiveWindow))
            {
                visApp.ActiveWindow.SelectAll();
                foreach (Visio.Shape shape in visApp.ActiveWindow.Selection)
                {
                    if (shape.Data1 == "tongji")
                    {
                        shape.Delete();
                    }
                }
                visApp.ActiveWindow.DeselectAll();
            }

如果我們需要添加那些信息的時候,先根據坐標繪制一個形狀

Visio.Shape shape = VisioUtility.DrawRectangeOnPage(visApp, leftTopX, leftTopY - j * cellHeight, 
                        leftTopX + leftCellWidth, leftTopY - (j + 1) * cellHeight);
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved