VB.NET Control類的屬性和方法
VB.NET還是比較常用的,于是我研究了一下VB.NET Control類,在這里拿出來和大家分享一下,希望對(duì)大家有用。
正常情況下,在開發(fā).NET Windows應(yīng)用程序時(shí),我們都會(huì)用到System.Windows.Forms 名字空間的控件??晒┪覀兪褂玫目丶芏?,從Label、TextBox等簡(jiǎn)單的控件到MonthCalendar、ColorDialog等功能更豐富、更復(fù)雜的控件。盡管這些控件對(duì)于我們需要開發(fā)的大多數(shù)Windows應(yīng)用程序已經(jīng)足夠好了,但有時(shí)我們也需要自己開發(fā)一些 System.Windows.Forms名字空間不包括的控件。本篇文章將講述如何使用VB.NET創(chuàng)建定制控件,尤其是在需要提供自己的圖形用戶接口時(shí)。
開發(fā)定制控件并不困難。在開發(fā)定制控件時(shí),我們可以使用現(xiàn)有的控件,或者對(duì)Control或UserControl類進(jìn)行擴(kuò)展。結(jié)合使用現(xiàn)有的控件使我們減少提供接口的麻煩,擴(kuò)展Control或UserControl類意味著我們需要覆蓋OnPaint方法,自己繪制圖形用戶接口。本篇文章中,我們由UserControl類派生了一個(gè)定制控件,UserControl類本身也是由繼承Control類而生成的。因此讀者需要對(duì)這二個(gè)類有一定的了解。
Control類非常重要,因?yàn)樗荳indows可視化組件的父類,我們開發(fā)的定制類將是Control類的一個(gè)子類。我們的定制類一般不會(huì)直接由Control類派生而成,相反,一般是對(duì)UserControl類進(jìn)行擴(kuò)展。
一。VB.NET Control類
Control類提供向Windows應(yīng)用程序用戶顯示信息的類所要求的基本功能,它處理用戶通過鍵盤和鼠標(biāo)進(jìn)行的輸入,以及消息的分配和安全。更重要的是,Control類定義了控件的范圍(位置和大?。?,盡管它不實(shí)現(xiàn)控件的繪制。
Windows表單控件使用了環(huán)境屬性,因此其子控件的顯示與其周圍環(huán)境相似。缺省情況下,環(huán)境屬性是由其父控件獲得的,如果類沒有父控件或者其環(huán)境屬性沒有設(shè)置,則控件試圖通過Site屬性設(shè)置環(huán)境屬性的值。如果控件沒有確定位置,不支持環(huán)境屬性,或者AmbientProperties對(duì)象的屬性沒有設(shè)置,控件就會(huì)使用缺省值。一般情況下,控件的環(huán)境特性表示控件的一個(gè)特征,例如BackColor,它會(huì)傳遞給子控件。例如,缺省情況下,Button控件將具有與其父表單控件相同的BackColor環(huán)境屬性。
許多Control類的屬性、方法和事件都會(huì)不加變化地傳遞給子類。
二。VB.NET Control類的屬性
1.BackColor:控件的背景顏色,是由一個(gè)System.Drawing.Color對(duì)象表示的。我們可以使用如下所示的代碼將一個(gè)System.Drawing.Color對(duì)象賦給該屬性:
2.Enabled:一個(gè)表示該控件是否可用的布爾型值,缺省情況下其值為True。
3.Location:控件的左上角在其窗口中的位置,由一個(gè)System.Drawing.Point對(duì)象表示。
4.Name:控件的名字。
5.Parent:返回控件的父控件或容器的引用。例如,在一個(gè)表單中添加的控件的父控件就是該表單,下面的代碼將Button1控件所在的表單的標(biāo)題欄改為“Thank you.”:
6.Size:控件的大小,由System.Drawing.Size對(duì)象表示。
7.Text:與控件相關(guān)的字符串。例如,在Label控件中,Text屬性就是顯示在標(biāo)簽體上的字符串。
三。VB.NET Control類的方法
1.BringToFront:如果該控件在其他一些控件下面,完整地顯示該控件。換一句話說,這一方法能夠顯示一個(gè)完整的控件。
2.CreateGraphics
獲取控件的System.Drawing.Graphics對(duì)象,我們可以在其上利用System.Drawing.Graphics類的各種方法進(jìn)行顯示。例如,下面的代碼獲取名字為Button1的控件的Graphics圖像,然后在按鈕上劃一條對(duì)角的綠線:
3.Imports System.Drawing
- Imports System.Drawing
- Dim graphics As Graphics = Button1.CreateGraphics
- Dim pen As Pen = New Pen(Color.Green)
- graphics.DrawLine(pen, 0, 0, _
- Button1.Size.Width, Button1.Size.Height)
但是,用這種方法在控件上畫圖,所畫的圖像不是“永久”的。當(dāng)控件或者包含控件的表單被重畫時(shí),用這種方式畫的圖像就會(huì)消失。
4.Focus:將焦點(diǎn)給予該控件,使它成為活動(dòng)控件
5.Hide:將控件的Visible屬性設(shè)置為False,使它不被顯示出來。
6.GetNextControl:按Tab鍵控制次序返回下一個(gè)控件。
7.OnXXX
觸發(fā)XXX事件。這里的XXX可以是Click、ControlAdded、ControlRemoved、DoubleClick、 DragDrop、DragEnter、DragLeave、DragOver、Enter、GotFocus、KeyDown、KeyPress、 KeyUp、LostFocus、MouseDown、MouseEnter、MouseHover、MouseLeave、MouseMove、 MouseUp、Move、Paint、Resize和TextChanged。例如,調(diào)用控件的OnClick方法就會(huì)觸發(fā)其Click事件。
8.Show:將控件的Visible屬性設(shè)置為True,以顯示該控件。
【編輯推薦】


















