C 進行Visio二次開發之知識點考核試題

2021-09-22 13:53:31 字數 3540 閱讀 1623

本人做過多年的visio二次開發,根據個人的經驗總結及專案積累,寫了一些小小的隨筆文章(具體可參考《伍華聰的visio二次開發文章

》,上月有幸給深圳乙個團隊做了兩天的visio培訓,當了一回客座老師,重新拉起visio二次開發這面大旗,個人覺得這也是一次比較難忘的一次經歷。

本次準備的培訓,除了全面介紹visio的相關知識和概念,還以實戰開發的方式加深visio二次開發的知識掌握,另外還通過試題來考核各個學生的掌握情況,本文主要是介紹我根據自己一直以來的visio開發經驗所得,準備的visio二次開發試題,並提供相應的解答分析,希望大家批評指正,一起溝通交流。 

雖然visio已經在各行各業應用的很廣,不過這兩年來關注的部落格文章,visio二次開發方面的文章除了我零星寫的一些,其他同行基本上沒有文章涉及(可能是沒有時間寫這方面經驗),雖然目前已經很少從專案上去昇華、研究visio二次開發方面的工作(除非又有一些特殊的專案合作需要)。因此,如果這方面我自己有一些新的心得或者資料,我是很樂意和大家一起分享。 

一)判斷題(每題5分,共20題,總分100分)

1)部署visio二次開發的應用程式不需要安裝office visio。

答案:錯,開發、部署都需要。

答案: 對。

3)形狀資料視窗顯示的字段資訊,是visio圖元內部固定的資料,不能通過**進行更改。

答案:錯,可以通過**修改,增加、修改、刪除均可。

4)通過巨集錄製功能,可以檢視某個功能的具體實現**,也能實現對圖元(shape物件)等物件屬性的除錯跟蹤。

答案:對。

5)可以通過visio來實現模具的繪製,修改,調整其內部相應的控制內容,但模具顯示的圖示不可修改。

答案:錯,圖示也一樣可以修改。

6)visio drawing control控制項是乙個com控制項,該控制項除了提供介面顯示visio文件外,也提供了visio二次開發中涉及到的window、document、shape、page、selection等物件的事件處理。

答案:對。

7)visio文件裡面儲存到shape data屬性資料的時候,數值型、字元型的值儲存均要再前後加雙引號。

答案:錯,數值型是不需要加雙引號的。

8)visio二次開發,可以通過**實現形狀資料視窗、模具檔案視窗、掃視和縮放等視窗的可見性進行控制,但不能通過**呼叫visio控制項裡面的介面元件物件(如commandbar等ui元件物件)。

答案:錯,均可以。

9)visio除了可以在winform中通過控制項實現對文件的編輯外,也可以通過安裝visio viewer工具,實現visio文件基於web方式的修改編輯。

答案:錯,web方式只能檢視,無法實現修改。

10) visio drawing control控制項,有乙個重要的src屬性是用來開啟或者關閉當前文件,如果開始為該屬性指定特定的檔案路徑後,再次設定src為空,那麼控制項顯示的文件就會變為空白文件。

答案:錯,src只是關閉對引用檔案的操作,不會影響文件的顯示,還是顯示原來的文件。

11)模具檔案屬性的修改,必須先以讀寫方式開啟模具文件,才能進行相關的操作。

答案:對。

12)visio文件通過src開啟指定檔案後,如果要重新關聯到不同的檔案上去,需要通過marshal.releasecomobject方法來釋放已有的物件,如果是新建乙個visio文件,則不需要這樣操作。

答案:錯,均需要釋放物件。

13)visio開發的winform程式,可以使用兩種方式實現右鍵選單:一種是通過捕捉visio控制項的mouseupevent事件,一種是通過runaddonwargs函式來實現。兩種方式效果一樣,都帶有visio常用的複製、貼上、格式、資料等基本的選單專案。

答案:錯,第一種沒有其他選單。

14)屬性資料的下拉列表分為:固定列表、可變列表。兩者區別前者不可以通過**增加列表專案,後者可以增加;但兩者都可以既從列表中選擇資料,也可以輸入新的內容。

答案:錯誤,他們都可以通過**增加列表專案,只是後者可以選擇已有的,也可以輸入其他內容。

15)visio文件提供列印當前頁、當前檢視、分頁列印等操作,同時也支援列印選定區域。

答案:對。

16)如果修改了模具的master物件的形狀資料定義,如增加乙個屬性字段,那麼圖紙對應的master和shape也能自動實現更新。

答案:錯,更新模具形狀屬性後,需要手動更新圖紙的資訊。

17)通過**操作,除了可以修改shape物件的值外,還可以實現shape物件的文字內容、字型大小、線條粗細、顯示顏色等屬性的修改。

對。18)visio文件有且只有乙個模具模板(master物件),乙個模具物件在文件中可有多個圖元(shape物件)。

答案:對。  

19)乙個形狀檔案包含一系列的模具組合,如開關模具組、跨越模具組。

答案:對。

20)visio文件可以儲存為xml格式檔案,通過這個檔案可以看到各種visio物件之間的組織關係。

答案:對。

二)實戰開發題(每題50分,共1題,總分50分)

例子要求: 

1、開啟指定的visio及模具檔案,可以儲存visio檔案,匯出visio為cad。

3、模仿enventsink.cs**實現事件的偵聽及處理操作。

4、為頁面新增乙個右鍵選單【測試】,單擊測試彈出對話方塊顯示頁面數量、當前頁面名稱、shape數量。

5、可以開啟、隱藏模具檔案視窗。

答案: 

開啟相關的visio檔案,並在圖紙上右鍵,顯示右鍵選單【測試】 

響應選單操作後,介面彈出對話方塊,提示相關的資訊,如下圖。 

例子關鍵的**如下所示:

private

void btnopen_click(

object sender, eventargs e)

}

private

void openvisio(

string filename)

addcontextmenu();

}

private

void addcontextmenu()

下面提供本次例子的原始碼,希望對大家學習研究有所幫助:visio二次開發實戰例子demo(原始碼)

C 進行Visio二次開發之電氣線路停電分析邏輯

停電分析,顧名思義,是對圖紙進行停電的邏輯分析。在電氣化線路中,一條線路是從乙個電源出來,連線著很多很多的裝置的,進行停電分析,有兩個重要的作用 一是看圖紙上的shape元件是否連線正常,二是看哪些裝置有電無電。通過給有電的裝置一種顏色 如綠色 無電的裝置一種顏色 如紅色 那麼就可以很明顯地看到通電...

Visio二次開發(一) 巧用Visio巨集

最近做的專案中需要用到visio二次開發,安裝了visio的sdk,還有從網上找了一些這方面的部落格,visio的sdk是全英文的,看著有點費勁,很多的東西都不知道該如何去找,不過網上的一些部落格還是有一些不錯的,前兩天發現乙個有助於visio二次開發的方法,下面分享給大家。就是巧用visio的巨集...

visio二次開發 事件篇

visio 二次開發的事件程式設計主要分為四個步驟 首先,需要建立 visio 事件 和 visio 事件處理類,並新增需要處理的事件 其次,對需要處理的事件向物件進行註冊,即新增到物件的 eventlist 事件列表中,並同時指定 visio 事件處理類。這樣,當物件觸發了相應的事件後,能夠向事件...