WinForm中,windows
用戶控件(User Control):繼承自 UserControl,主要用於開發 Container 控件,Container控件能夠添加其餘Controls控件測試
自定義控件(Custom Control):繼承自 Control,主要用於開發windows控件的最基本的類,好比 Text,Button 控件this
複合控件(Composite Controls):將現有的各類控件組合起來,造成一個新的控件,來知足用戶的需求。spa
擴展控件(Extended Controls):就是在現有的控件基礎上,派生出一個新的控件,增長新的功能,或者修改原有功能,來知足用戶需求。設計
自定義控件(Custom Controls):就是直接從System.Windows.Forms.Control類派生,也就是說徹底由本身來設計、實現一個全新的控件,這是最靈活、最強大的方法,可是,對開發者的要求也是最高的。要實現一個自定義控件,必須爲Control類的的OnPaint事件編寫代碼,在OnPaint事件中實現自定義控件的繪製工做。同時,還能夠重寫Control類的WndProc方法,來處理底層的Windows消息。因此說,要實現一個自定義控件,對開發者的要求較高,要求開發者必須瞭解GDI+和Windows API的知識。code
源代碼orm
Steps:blog
1. 新建一個Windows控件庫項目(從UserControl派生)繼承
2. 添加一個Timer控件,並設置屬性(Enable=True, Interval=1000)和事件 (Ticker=Time1_Tick)事件
1 private void timer1_Tick(object sender, EventArgs e) 2 { 3 this.Time = DateTime.Now; 4 Refresh(); 5 }
3. 重寫OnPaint事件,繪製用戶界面
圖1 重寫OnPaint事件,繪製用戶界面
4. 生成用戶控件
5. 測試用戶控件
建立WinForm應用程序,在Toolbox添加Tab "User Control",再往其中拖入第4步中生成的自定義控件的dll文件。再把Toolbox中的用戶控件「UserControlClock」拖到界面「Form1」中,以下圖所示。