vs2008的使用者自定義控制項

2022-04-08 06:27:16 字數 1326 閱讀 7114

近日裡,由於框架改造的需要,需要將跳轉選單(gotomenu)功能從原有的以config配置檔案的方式,修改為在design time環境下進行視覺化配置的方式實現。於是做了一些準備,在microsoft msdn上翻閱了諸多資料,意外地,在 擴充套件設計時支援的外部資源 中找到了一些好東東,首先推薦一下。

言歸正傳,微軟的工程師們當初在設計visual studio的設計時編輯器時,考慮到開發人員需要在執行時以及設計時繪製,除錯相關的控制項、元件。將vs介面設計器設計為乙個「可擴充套件」的屬性編輯器。

介面編輯器的自定義,最常用的是使用屬性(attribute,為了與屬性,property,區分開,下文中使用「特性」)進行介面瀏覽設計。其中,最常用的,便是browsableattribute。預設情況下,使用者自定義元件中的屬性都是預設可見了,即預設browsableattribute為true的情況。當不希望某個屬性在屬性編輯器中顯示時,我們可以做如下設定:

private person person = new person();

//[browsable(false)]

public person person }

此時,在屬性編輯器中,我們可以看到,person屬性是可見的。

將//[browsable(false)]

回顧第一張圖中顯示的內容,我們可以發現,person屬性是不可編輯的,並且,在窗體designer.cs窗體設計內容(本文中為form1.designer.cs)檔案中,找不到關於person屬性的設定

這是為何呢?

在vs的屬性編輯器的資訊傳遞到.net程式(c#,vb)**的時候,其相應的屬性資訊是需要進行序列化後,將屬性內容持久化到本地**中的。

private person person = new person();

[designerserializationvisibility(designerserializationvisibility.content)]

public person person }

回到窗體設計**中(designer.cs)

當然,在自定義控制項的過程中,如果涉及到序列(list)的設定,也同樣是需要指定序列化內容的。

除了以上描述的兩個屬性外,visuao studio的擴充套件設計時支援內容中,還包括devaultvalueattribute,categoryattribute等,具體的內容可到msdn

查閱。

自定義控制項VS使用者控制項

winform中,使用者控制項 user control 繼承自 usercontrol,主要用於開發 container 控制項,container控制項可以新增其他controls控制項 自定義控制項 custom control 繼承自 control,主要用於開發windows控制項的最基本...

VS2008修改自定義模板

我們開發的時候習慣在 頂部加上自己的版權說明。每次拷貝挺麻煩的,上網查了一下,2003的介紹但不少。但08的模板生成方式好像改變了 後來2005的一篇介紹給了我一點提示。原來模板檔案放在common7目錄下。主要分為projecttemplates和itemtemplates,前者生成專案的時候用,...

C 自定義控制項VS使用者控制項

winform中,使用者控制項 user control 繼承自 usercontrol,主要用於開發 container 控制項,container控制項可以新增其他controls控制項 自定義控制項 custom control 繼承自 control,主要用於開發windows控制項的最基本...