製作VS風格的Toolbox控制項

來源:互聯網
上載者:User
       在前些日子裡,我寫了有十篇關於WinForm 控制項的製作教程,在這些教程裡使用的例子都十分的簡單,並且樣本的控制項基本沒有什麼用,是該寫一個簡單實用的控制項的時候了。今天我就來製作一個VS風格的ToolBox工具箱。VS風格的ToolBox和QQ的介面很相似,都是有多個欄目,並且這些欄目可以展開和摺疊,當滑鼠在某個子欄目上時,可以高亮顯示,另外在VS風格的ToolBox中,點擊選中項目的時候,要用特殊的顏色標識出來。如所示:
      
      其實,控制項的製作並不神秘,我們只需要把掌握的知識組合起來即可。現在我們動手來做這個控制項,首先看看我們要處理哪些要點:

1. 建立控制項的邊框,我在前邊的文章也講過(),直接將代碼複製過來,稍做修改即可。

2. 添加捲軸,因為我們的控制項只需要垂直的滾動,所以我只只加入一個垂直的捲軸。

3. ToolBox包含多個Category,我們不但要建立Category類,還要建立這個類的集合。

4. 每一個Category包含多個Item,我們不但要建立ToolBoxItem類,還要建立這個類的集合。

5. 重載OnPaint方法,繪製控制項的內容,在繪製的時候要注意捲軸的當前值,由於採用了雙緩衝機制,所以每次總是將所有的內容重繪一次,不考慮ClipRect。

6. 寫一個方法,根據滑鼠的座標計算出滑鼠指向的Item或者Category,這個方法是這個控制項的核心。

7. 重載OnMouseMove方法,當滑鼠指向某個Item的時候,高亮顯示出來。

8. 重載 OnMouseDown方法,當滑鼠在某個Item上按下的時候,用指定的顏色標識出來,如果滑鼠按下的地方是一個Category,根據當前的情況展開或者時摺疊這個category。

9. 計算控制項目前狀態的內容的總的高度,用於設定捲軸的可見與不可見。

10.              暴露一個屬性,用於為使用者提供當前選中的Item。

11.              聲明一個ItemChanged事件,便於使用者在選擇另一個Item時添加處理的代碼。

實現了上述的內容,這個控制項也就基本完成了。由於代碼並不複雜,我就不將代碼列出來講解了,我將提供代碼的下載,大家在看代碼的時候,如有不明白的地方,可以參考我前面的控制項教程。因為只花了幾個小時寫的這個控制項,難免還有一些問題,請大家指出。

原始碼下載

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.