偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#復(fù)合控件開(kāi)發(fā)技術(shù)

開(kāi)發(fā) 后端
這里介紹C#復(fù)合控件開(kāi)發(fā)技術(shù),.NET平臺(tái)為我們提供了三種控件的開(kāi)發(fā)技術(shù),分別是:繼承控件(Extended Control)、復(fù)合控件(Composite Control)和自定義控件(Custom Control)。

Visual C# .NET有很多值得學(xué)習(xí)的地方,今天重點(diǎn)介紹創(chuàng)建控件工程、更改命名空間、控件類名稱、添加現(xiàn)有控件、公布控件屬性。

本文介紹如何用Visual C# .NET 2002開(kāi)發(fā)簡(jiǎn)單的C#復(fù)合控件(Composite Control),主要講解控件開(kāi)發(fā)過(guò)程中的屬性(Property)和事件(Event)處理,以方便開(kāi)發(fā)人員在.NET平臺(tái)下根據(jù)自己的需要開(kāi)發(fā)適合的控件。

當(dāng)我們?cè)?NET平臺(tái)下做Windows Forms開(kāi)發(fā)時(shí),常常需要為了某一特殊用途而把現(xiàn)有控件結(jié)合起來(lái)使用,比如結(jié)合了Label和TextBox的控件就非常容易在窗體上布局(記得 Delphi 6里就有這么個(gè)控件),而結(jié)合了特定圖案和文字的控件則非常適合顯示公司的logo。.NET平臺(tái)就為我們提供了非常棒的工具和技術(shù)來(lái)創(chuàng)建這樣的自定義控件。下面讓我們來(lái)一起創(chuàng)作一個(gè)可以自動(dòng)顯示時(shí)間的控件。

值得注意的是,.NET平臺(tái)為我們提供了三種控件的開(kāi)發(fā)技術(shù),分別是:繼承控件(Extended Control)、復(fù)合控件(Composite Control)和自定義控件(Custom Control)(譯名可能會(huì)有所不同,大家可以以英文為準(zhǔn))。我們現(xiàn)在關(guān)心的是第二種——C#復(fù)合控件開(kāi)發(fā)技術(shù)。OK,Let’s go!

1.創(chuàng)建控件工程。

在Visual C# .NET中新建一個(gè)“Windows控件庫(kù)”項(xiàng)目,命名為“TimeLabel”

2.更改命名空間、控件類名稱。

默認(rèn)的命名空間是TimeLabel(和項(xiàng)目名稱一樣),控件類名稱是UserControl1。請(qǐng)把命名空間改為與你的開(kāi)發(fā)習(xí)慣一致,如我的是LeoYang.Controls.TimeLabel,當(dāng)然你也可以選擇保留默認(rèn)命名空間;***把控件類名稱改為有意義的命名,如 TimeLabel,這樣當(dāng)該控件出現(xiàn)在工具箱上時(shí),就會(huì)顯示為T(mén)imeLabel而不是UserControl1了。注意,一旦改動(dòng)類名,則相應(yīng)的 Construction方法名稱也要相應(yīng)改掉,如:

  1. public UserControl1(){  
  2. …  
  3. }  
  4. //就要改為:  
  5. public TimeLabel(){  
  6. …  
  7. }  


3.添加現(xiàn)有控件。

由于我們是要在現(xiàn)有控件的基礎(chǔ)上創(chuàng)建新控件,所以就應(yīng)該先把可用的現(xiàn)有控件添加到控件設(shè)計(jì)界面上。請(qǐng)?jiān)凇肮ぞ呦洹敝须p擊Label,再雙擊Timer,兩個(gè)現(xiàn)有控件依次被添加到我們的設(shè)計(jì)界面上

4.公布控件屬性。

因?yàn)橐褧r(shí)間寫(xiě)入Label的Text屬性中,所以我們需要把label1.Text屬性公開(kāi)。請(qǐng)?jiān)赥imeLabel類中加入以下代碼:

  1. public string LabelText  
  2. {  
  3. get  
  4. {  
  5. return label1.Text;  
  6. }  

注意,這里我們不需要讓控件使用者改變label1.Text的值,所以LabelText是個(gè)只讀屬性。

另外,出于美觀的考慮,我們這里還要向控件使用者公開(kāi)一個(gè)LabelBackColor屬性,用于獲得和設(shè)置Label的BackColor屬性。代碼如下:

  1. public Color LabelBackColor{  
  2. get{  
  3. return label1.BackColor;  
  4. }  
  5. set{  
  6. label1.BackColor=value;  
  7. }  

當(dāng)然,你也可以根據(jù)需要再增加一些屬性,如字體、控件大小等,讓控件使用者可以更加靈活地使用控件。

到這里,我需要向大家補(bǔ)充一點(diǎn),C#復(fù)合控件創(chuàng)建中的很重要的一條是:任何構(gòu)成控件(Constituent Control)的屬性必須要通過(guò)加入復(fù)合控件的屬性來(lái)公開(kāi),而不要直接把構(gòu)成控件直接以public級(jí)別公開(kāi)。比如說(shuō)上面,我們就不應(yīng)把Label控件的訪問(wèn)級(jí)別設(shè)為public來(lái)直接公開(kāi)(默認(rèn)是private)。這樣作的目的是讓我們能更好地把握控件的數(shù)據(jù)安全,從而只把那些最需要的屬性公開(kāi)給控件用戶。以上介紹C#復(fù)合控件開(kāi)發(fā)技術(shù)。

【編輯推薦】

  1. C#編寫(xiě)數(shù)字轉(zhuǎn)換中文算法
  2. 分析C#調(diào)用COM對(duì)象
  3. C# SingleInstance類淺析
  4. 概述C#調(diào)用Active組件
  5. C# Convert.ToInt32簡(jiǎn)介
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-08-19 15:30:40

C#復(fù)合控件構(gòu)建

2009-08-21 17:55:52

C#復(fù)合控件

2009-08-19 14:15:42

C# 復(fù)合控件

2009-09-16 10:56:22

C#開(kāi)發(fā)ActiveX

2009-09-11 10:41:20

C# WinForm控

2011-05-20 16:07:29

C#

2009-08-06 18:18:27

ASP.NET控件開(kāi)發(fā)ASP.NET復(fù)合控件

2009-09-01 17:08:14

C#畫(huà)線控件

2009-08-18 17:41:22

C# ListView

2009-08-11 14:45:41

C# DataGrid

2009-08-19 11:21:02

C# ListBox控

2009-08-24 11:23:41

C# TimeLabe

2009-07-30 16:52:38

復(fù)合控件ASP.NET服務(wù)器控

2015-05-12 14:16:15

C#ActiveX控件web調(diào)用

2009-08-14 14:19:50

Enhanced LiC#構(gòu)建

2009-08-24 18:21:23

C# ListView

2009-09-04 17:58:38

C# Web Brow

2009-08-21 15:27:11

C# DataGrid

2009-08-06 16:58:40

C#編寫(xiě)ActiveX

2009-08-12 10:35:50

C#調(diào)用ActiveX
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)