Code 14
那么,誰應該注冊該信息,以及在哪里注冊該信息呢?我認為注冊該信息的責任應該落在控件的頭上,再者,該信息是與控件的類型而不是實例相關的,于是,我把注冊該信息的代碼放在控件的靜態(tài)構造函數(shù)里:
Code 15
剩下的就是掛接相關的事件委托和處理狀態(tài)的同步了,這些都和"我的博客"側(cè)邊欄的做法大同小異,這里就不重復了。
更多選擇
還差點什么呢?語言!留意下面這幅截圖:
圖 2
Class、Members、Constructor、Methods以及節(jié)點所指向的內(nèi)容均為英文,我希望可以選擇用于顯示的語言。于是,我為插件創(chuàng)建了一個選項窗口:
圖 3
并在它的Load事件委托里處理當前語言下拉列表的初始化,并讀取配置文件中的語言信息:
Code 16
我們確實可以避免在這里硬編碼,然而,就目前來說,提供簡體中文、繁體中文和英文已經(jīng)足夠了,除非你打算把它變成產(chǎn)品,并進軍全球市場。當用戶選好語言并點擊OK按鈕時,語言信息將會保存到配置文件里:
Code 17
Class Library Options窗口是通過側(cè)邊欄右下角新添加的Options按鈕啟動的,當語言信息改變了,TreeView也應該刷新根節(jié)點:
Code 18
需要說明的是,我不再指定Version的值,這將告訴MTPS獲取最新的發(fā)布版本 (非預發(fā)行版,包括Beta版和CTP版),而Locale則與配置文件里的語言信息相對應,這意味著插入的超鏈接所指向的頁面將與配置文件里德語言信息相對應。下面是運行效果的截圖:
圖 4
至此,Class Library側(cè)邊欄的開發(fā)要告一段落了,雖然此時我的腦海里又冒出了新的需求,或者你也對它有了新的想法。
相關閱讀