自定義控制項VS使用者控制項

2021-09-07 09:18:05 字數 2134 閱讀 1084

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)

2

3. 重寫onpaint事件,繪製使用者介面

圖1 重寫onpaint事件,繪製使用者介面

1         #region draw clock

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

4. 生成使用者控制項

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去直接執行這段 二 在頁面上新增工具箱的自帶控制項 工具箱拖動控制項到頁面中 三 在後台新增相應執行邏輯及操作 四 重新生成解決方案 五 頁面開始使用 這段 輸出標...