C# 自定義控件VS用戶控件

1 自定義控件與用戶控件區別

WinForm中,windows

用戶控件(User Control):繼承自 UserControl,主要用於開發 Container 控件,Container控件能夠添加其餘Controls控件測試

自定義控件(Custom Control):繼承自 Control,主要用於開發windows控件的最基本的類,好比 Text,Button 控件this

 

2 要開發本身的控件的幾種方法[1]

複合控件(Composite Controls):將現有的各類控件組合起來,造成一個新的控件,來知足用戶的需求。spa

擴展控件(Extended Controls):就是在現有的控件基礎上,派生出一個新的控件,增長新的功能,或者修改原有功能,來知足用戶需求。設計

自定義控件(Custom Controls):就是直接從System.Windows.Forms.Control類派生,也就是說徹底由本身來設計、實現一個全新的控件,這是最靈活、最強大的方法,可是,對開發者的要求也是最高的。要實現一個自定義控件,必須爲Control類的的OnPaint事件編寫代碼,在OnPaint事件中實現自定義控件的繪製工做。同時,還能夠重寫Control類的WndProc方法,來處理底層的Windows消息。因此說,要實現一個自定義控件,對開發者的要求較高,要求開發者必須瞭解GDI+和Windows API的知識。code

3 示例:Clock User Control[1]

源代碼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事件,繪製用戶界面

  View Code

4. 生成用戶控件

5. 測試用戶控件

建立WinForm應用程序,在Toolbox添加Tab "User Control",再往其中拖入第4步中生成的自定義控件的dll文件。再把Toolbox中的用戶控件「UserControlClock」拖到界面「Form1」中,以下圖所示。

相關文章
相關標籤/搜索