轉帖|其它|編輯:郝浩|2011-09-27 15:06:07.000|閱讀 2295 次
概述:前面已經寫了不少控件美化和換膚的文章,以后打算寫一些C#自定義控件開發的系列文章,以便學習C#怎樣開發自己需要的特殊功能的控件。本文主要是介紹C#實現想QQ2008那樣的抽屜控件,在實現這個控件時,順便也實現了帶有標題的Panel控件和圓角邊框的Panel控件。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
前面已經寫了不少控件美化和換膚的文章,以后打算寫一些C#自定義控件開發的系列文章,以便學習C#怎樣開發自己需要的特殊功能的控件。本文主要是介紹C#實現想QQ2008那樣的抽屜控件,在實現這個控件時,順便也實現了帶有標題的Panel控件和圓角邊框的Panel控件,最終的控件效果如下圖:
首先來看一下一個對象之間的關系圖,然后對應關系圖來說明每個對象實現的內容,關系圖如下:
1、 PanelBase繼承Pnael控件,主要實現了一些基本功能的定義和控件背景的繪制。例如:邊框圓角的大小(Raius)和圓角的樣式(RoundStyle)等。
2、 BorderPanel繼承PanelBase,實現一個帶有圓角樣式邊框的Panel。
3、 CaptionPanel集成PanelBase,實現一個帶有標題和圓角邊框的Panel,并且定義相應的標題欄鼠標事件。
4、 PushPanel繼承BorderPanel,是最終的抽屜控件,實現了可視化的添加和移除抽屜項(Item)、設置抽屜項的外觀和展開、折疊抽屜項等功能。
5、 PushPanelItem繼承CaptionPanel,從命名可以看出,它實現的是一個抽屜項,主要實現抽屜的一些展開、折疊功能,一般由PushPanel來管理。
為了PushPanel方便的管理抽屜項(PushPanelItem),像.NET自帶的那些帶有項的控件(如:ListBox、ListView、TreeView等)一樣,需要實現一個項的集合類,以利于方便的管理所有的項。所以實現了一個PushPanelItemCollection集合,這個集合主要就是實現添加、移除、查找項等功能。
對于實現抽屜項的展開和折疊,這個主要是計算各個項的位置和大小,實現并不是很難,這里也不再詳述。
為了方便的實現可視化的設計,還為PushPanel和PushPanelItem編寫了簡單的設計器,這個在這里不詳細說明,大家可以下載源碼了解。
本文就為你介紹到這里,希望本文提供的抽屜控件對你有用。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載