深入剖析VB.NET Control類中主要屬性與方法
當我們使用了VB.NET進行實際開發的時候,會發現,其中又很多種類的應用方法和使用功能可以幫助我們實現許多種特殊的功能。比如,VB.NET Control類就是非常重要,因為它是Windows可視化組件的父類,我們開發的定制類將是Control類的一個子類。我們的定制類一般不會直接由Control類派生而成,相反,一般是對UserControl類進行擴展。 #t#
Control類
Control類提供向Windows應用程序用戶顯示信息的類所要求的基本功能,它處理用戶通過鍵盤和鼠標進行的輸入,以及消息的分配和安全。更重要的是,Control類定義了控件的范圍(位置和大小),盡管它不實現控件的繪制。
Windows表單控件使用了環境屬性,因此其子控件的顯示與其周圍環境相似。缺省情況下,環境屬性是由其父控件獲得的,如果類沒有父控件或者其環境屬性沒有設置,則控件試圖通過Site屬性設置環境屬性的值。如果控件沒有確定位置,不支持環境屬性,或者AmbientProperties對象的屬性沒有設置,控件就會使用缺省值。一般情況下,控件的環境特性表示控件的一個特征,例如BackColor,它會傳遞給子控件。例如,缺省情況下,Button控件將具有與其父表單控件相同的BackColor環境屬性。
許多VB.NET Control類的屬性、方法和事件都會不加變化地傳遞給子類。
Control類的屬性
下面是Control類的一些最重要的屬性
BackColor
控件的背景顏色,是由一個System.Drawing.Color對象表示的。我們可以使用如下所示的代碼將一個System.Drawing.Color對象賦給該屬性:
control.BackColor = System.Drawing.Color.Red
Enabled
一個表示該控件是否可用的布爾型值,缺省情況下其值為True。
Location
控件的左上角在其窗口中的位置,由一個System.Drawing.Point對象表示。
Name
控件的名字。
Parent
返回控件的父控件或容器的引用。例如,在一個表單中添加的控件的父控件就是該表單,下面的代碼將Button1控件所在的表單的標題欄改為“Thank you.”:
Button1.Parent.Text = "Thank you."
Size
控件的大小,由System.Drawing.Size對象表示。
Text
與控件相關的字符串。例如,在Label控件中,Text屬性就是顯示在標簽體上的字符串。
Control類的方法
下面是一些VB.NET Control類最經常使用的方法
BringToFront
如果該控件在其他一些控件下面,完整地顯示該控件。換一句話說,這一方法能夠顯示一個完整的控件。
CreateGraphics
獲取控件的System.Drawing.Graphics對象,我們可以在其上利用System.Drawing.Graphics類的各種方法進行顯示。例如,下面的代碼獲取名字為Button1的控件的Graphics圖像,然后在按鈕上劃一條對角的綠線:
- 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)
但是,用這種方法在控件上畫圖,所畫的圖像不是“永久”的。當控件或者包含控件的表單被重畫時,用這種方式畫的圖像就會消失。
Focus
將焦點給予該控件,使它成為活動控件
Hide
將控件的Visible屬性設置為False,使它不被顯示出來。
GetNextControl
按Tab鍵控制次序返回下一個控件。
OnXXX
觸發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。例如,調用控件的OnClick方法就會觸發其Click事件。
VB.NET Control類之Show
將控件的Visible屬性設置為True,以顯示該控件。