winform中,
使用者控制項(user control):繼承自 usercontrol,主要用於開發 container 控制項,container控制項可以新增其他controls控制項
自定義控制項(custom control):繼承自 control,主要用於開發windows控制項的最基本的類,比如 text,button 控制項
復合控制項(composite controls):將現有的各種控制項組合起來,形成乙個新的控制項,來滿足使用者的需求。
擴充套件控制項(extended controls):就是在現有的控制項基礎上,派生出乙個新的控制項,增加新的功能,或者修改原有功能,來滿足使用者需求。
自定義控制項(custom controls):就是直接從system.windows.forms.control類派生,也就是說完全由自己來設計、實現乙個全新的控制項,這是最靈活、最強大的方法,但是,對開發者的要求也是最高的。要實現乙個自定義控制項,必須為control類的的onpaint事件編寫**,在onpaint事件中實現自定義控制項的繪製工作。同時,還可以重寫control類的wndproc方法,來處理底層的windows訊息。所以說,要實現乙個自定義控制項,對開發者的要求較高,要求開發者必須了解gdi+和windows api的知識。
源**
steps:
1. 新建乙個windows控制項庫專案(從usercontrol派生)
2. 新增乙個timer控制項,並設定屬性(enable=true, interval=1000)和事件 (ticker=time1_tick)
1 private void timer1_tick(object sender, eventargs e)3. 重寫onpaint事件,繪製使用者介面2
圖1 重寫onpaint事件,繪製使用者介面
1 #region draw clock4. 生成使用者控制項2 private void userclock_paint(object sender, painteventargs e)
3
13
14 public void initcoordinates(graphics dc)
15
20 public void drawdots(graphics dc, brush brush)
21
29 else
30
33 dc.fillellipse(brush, -isize / 2, -100 - isize / 2, isize, isize);
34 dc.rotatetransform(6);
35 }
36 }
37 public virtual void drawhourhand(graphics grfx, pen pn)
38
44 public virtual void drawminutehand(graphics grfx, pen pn)
45
51 public virtual void drawsecondhand(graphics grfx, pen pn)
52
58 #endregion
5. 測試使用者控制項
建立winform應用程式,在toolbox新增tab "user control",再往其中拖入第4步中生成的自定義控制項的dll檔案。再把toolbox中的使用者控制項「usercontrolclock」拖到介面「form1」中,如下圖所示。
圖2 測試使用者控制項
C 自定義控制項VS使用者控制項
winform中,使用者控制項 user control 繼承自 usercontrol,主要用於開發 container 控制項,container控制項可以新增其他controls控制項 自定義控制項 custom control 繼承自 control,主要用於開發windows控制項的最基本...
自定義使用者控制項
和做乙個web 窗體一樣,只是,如果引用其中的控制項的方法是如何?以下示例是asp.net 1.1裡的,2.0是怎麼引用,還沒有看書呢 string getddlyear,getddllc,getddladd,getddlpeopso getddlyear class ddlyear this.fi...
自定義使用者控制項
一 專案中新增web 使用者控制項字尾 ascx 注意字尾.ascx,它告訴網頁這是乙個使用者控制項。它沒有什麼特別含義,只是不讓iis去直接執行這段 二 在頁面上新增工具箱的自帶控制項 工具箱拖動控制項到頁面中 三 在後台新增相應執行邏輯及操作 四 重新生成解決方案 五 頁面開始使用 這段 輸出標...