升級到 Microsoft .NET
Paul D. Sheriff
PDSA, Inc.
2001年11月
摘要:本文簡單介紹了 Microsoft Visual Basic 6.0 中的標準控件和等效的 Microsoft .NET 控件。
目標
- 了解哪些 Visual Basic 6.0 ActiveX 控件在 .NET 中具有等效控件。
- 了解 .NET 控件中哪些屬性發生了變化。
- 了解 .NET 中有哪些新控件。
前提條件
要徹底理解本文內容,需要滿足以下條件:
- 了解什么是 ActiveX 控件。
- 使用 Visual Basic 6.0 控件和 ActiveX 控件編寫過 Windows 應用程序。
目錄
標準控件的差別
從內部構造來看,Microsoft .NET 控件與 Microsoft® ActiveX® 控件存在很大差別,因為 .NET 控件是從其他類的層次結構創建的。這些 .NET 控件所繼承的類有若干個,隨著您對實際控件的深入了解,您會發現每一個類都經過優化并添加了更多的功能?丶念悓哟谓Y構的頂層是 Control 類。但如果您創建自己的控件,這些控件很可能是從 UserControl 類繼承而來的,因為 UserControl 類包含您需要的屬性和事件,而且還能為您繪制所有的構成控件。
使用 .NET 創建用戶界面時,您會發現很多熟悉的 Microsoft Visual Basic® 6.0 控件已經不見了或者已經換了名稱。本文將簡單介紹 Visual Basic 6.0 中的標準控件以及等效的 .NET 控件。在本文后面的內容中,您將了解到所有這些控件在屬性名稱上有何具體的差異。除了屬性和一些事件名稱發生變化以外,這些控件的功能與 Visual Basic 6.0 中基本相同。
表 1 列出了 Visual Basic 6.0 工具箱中的標準控件以及等效的 .NET 控件。雖然這里只列出了部分 .NET 控件,但通過此表您可以了解到 .NET 控件發生了什么樣的變化。
表 1:在 .NET 中被重命名的 ActiveX 控件
Visual Basic 6.0 標準控件 | 等效的 .NET 控件 |
---|---|
Picture | PictureBox |
Label | Label |
TextBox | TextBox |
Frame | GroupBox |
CommandButton | Button |
CheckBox | CheckBox |
OptionButton | RadioButton |
ListBox | ListBox |
ComboBox | ComboBox |
HScrollBar | HScrollBar |
VscrollBar | VScrollBar |
Timer | Timer |
DriveListBox | 無。由 OpenFileDialog 控件代替。 |
DirListBox | 無。由 OpenFileDialog 控件代替。 |
FileListBox | 無。由 OpenFileDialog 控件代替。 |
Shape | 無。目前,您可以使用 .NET 公共語言運行時 (CLR) 中的類來繪制形狀。 |
Line | 無。目前您可以使用 .NET CLR 中的類來繪制直線。 |
Image | 無。您可以使用 PictureBox 控件顯示單個圖像。 |
Data | 無。.NET 中的數據綁定與 Visual Basic 6.0 中的數據綁定完全不同。 |
OLE | 無。 |
ImageList | ImageList |
.NET 中的新控件
除了標準控件以外,.NET 中還包含一組新控件。其中一些控件在 Visual Basic 6.0 中具有等效控件,而另一些則是全新的控件。下面列出了一些您可以在 .NET 中使用的新控件。
表 2:可用于創建用戶界面的標準控件
新控件 | 說明 |
---|---|
LinkLabel | 使您可以在 Windows 窗體上放置超鏈接。其功能類似于瀏覽器中的超鏈接。 |
MainMenu | 幫助您在窗體上創建菜單。 |
DataGrid | 按表格形式顯示 ADO.NET 數據集中的數據。此控件與 Visual Basic 6.0 中的 FlexGrid 控件非常相似,但它具有許多新功能。 |
CheckedListBox | 增強的 ListBox,允許用戶通過選取每個項目旁邊的復選框,來選擇列表中的一個或多個項目。要在 Visual Basic 6.0 中實現此功能,您需要將 Style 屬性設置為 1-Checked。 |
TabControl | 結合了 Visual Basic 6.0 中 TabStrip 和 SSTab 兩個控件的功能。 |
Splitter | 使您可以創建類似于瀏覽器的、具有兩個窗格的界面。 |
DomainUpDown | 將文本框和 UpDown 箭頭組合在一起。其功能類似于組合框,您可以將任何類型的數據放入列表,用戶可以通過單擊上箭頭和下箭頭來瀏覽數據。 |
TrackBar | 與 Visual Basic 6.0 中的舊 Slider 控件非常相似。 |
HelpProvider | 如果將此控件添加到窗體的組件欄中,它將向窗體的每個控件添加 HelpString、HelpTopic 和 ShowHelp 屬性。 |
ToolTip | 如果將此控件添加到窗體的組件欄中,它將向窗體的每個控件添加 ToolTip 屬性。 |
NotifyIcon | 通常只在創建 Windows 服務時使用,使您可以設置顯示在任務欄的系統托盤中的 Icon。單擊時,可以顯示菜單或該程序中的任何窗體。 |
ContextMenu | 向窗體添加另一個菜單,然后將其指派給窗體上的任何控件。 |
OpenFileDialog | 顯示 OpenFile 對話框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 |
SaveFileDialog | 顯示 SaveFile 對話框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 |
FontDialog | 顯示 Font 對話框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 |
ColorDialog | 顯示 Color 對話框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 |
PrintDialog | 顯示 Print 對話框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 |
PrintPreviewDialog | 與 PrintPreviewControl 結合使用。 |
PrintPreviewControl | 允許將文檔發送到打印預覽窗口而不是發送到打印機。 |
ErrorProvider | 如果將此控件添加到窗體的組件欄中,它將向窗體的每個控件添加 Error、IconAlignment 和 IconPadding 屬性。 |
PrintDocument | 將該控件與其他類一起使用時,您可以將文檔發送到打印機。 |
PageSetupDialog | 顯示一個對話框,用戶可在上面更改頁邊距和頁面方向等設置。 |
屬性的變化
為了保持所有控件中屬性名稱的一致性并且使屬性名稱更加直觀,很多屬性的名稱相對于它們在 Visual Basic 6.0 中的名稱已經有所變化。某些屬性已被刪除,因為不再需要這些屬性(例如 DDE 屬性),或者其功能已由 .NET 中的其他控件或方法所代替。
已刪除的公共屬性
在 Visual Basic 6.0 中,有許多屬性是所有控件所共有的。在 .NET 中,許多此類屬性已被刪除,因為它們已不再適用或者其功能已按照完全不同的方式進行處理。表 3 列出了在 .NET 中不再可用的 Visual Basic 6.0 控件的公共屬性。在本文后面的內容中,您會了解到它們的等效屬性或刪除它們的原因。
表 3:.NET 中所沒有的 Visual Basic 6.0 屬性
已刪除的屬性 |
---|
DragIcon |
DragMode |
Index |
LinkItem |
LinkMode |
LinkTimeout |
LinkTopic |
MouseIcon |
MousePointer |
OLEDragMode |
OLEDropMode |
新的公共屬性
您經常會需要使用所有控件的公共屬性集。與 Visual Basic 6.0 一樣,.NET 中的所有控件也有一個公共的屬性集。表 4 列出了各個新屬性并介紹了其功能。
表 4:.NET 中的新屬性
新屬性 | 說明 |
---|---|
AccessibleDescription | “講述人”附件所朗讀的說明內容!爸v述人”是供有視覺障礙的用戶使用的一種通訊工具,它可以通過計算機揚聲器為用戶朗讀計算機屏幕上的文字。大部分 Windows 系統都具有此功能,使用方法是依次單擊“開始”|“程序”|“附件”|“輔助工具”,然后單擊“講述人”。當您在屏幕上移動鼠標時,該工具將朗讀屏幕上的文字。當填寫此說明并運行“講述人”工具時,它將為用戶朗讀此說明。 |
AccessibleName | “講述人”附件所報告的控件名稱。 |
AccessibleRole | “講述人”附件為用戶報告的角色。 |
AllowDrop | 確定控件是否接收拖放通知。 |
Anchor | 確定控件在窗體中的錨定位置?梢赃x擇您需要的任何錨定樣式。 |
ContextMenu | 將此屬性設置為 ContextMenu 控件的名稱,這樣在此控件上單擊鼠標右鍵時,將自動顯示控件菜單。 |
Dock | 確定控件在窗體中的靠接位置?拷涌丶䲡r,控件將隨窗體的大小而縮放,但靠接位置不變。 |
Locked | 如果設置為 True,則此控件在設計時將無法移動。 |
Modifiers | 確定控件的范圍。默認情況下,.NET 中的所有控件都為 Friend。在 Visual Basic 的舊版本中,所有控件都為 Public,F在,您可以選擇 Private、Protected、Friend 或 Public。 |
已改變的屬性
在 Visual Basic 6.0 中,有四個屬性是所有控件所必需的,即:Left、Top、Width 和 Height。雖然這些屬性仍然可以使用,但最好使用稱為 Location 和 Size 的新結構。表 5 列出了這些新屬性,并介紹了這些新屬性的結構。
表 5:.NET 中的 Location 和 Size 屬性
屬性 | 說明 |
---|---|
Location | 指出控件所在位置的 X 和 Y 坐標的 Point 結構。在舊版本的 Visual Basic 中,需要使用 Left 和 Top 屬性來完成此設置。 |
Size | 指出控件的寬度和高度的 Size 結構。在舊版本的 Visual Basic 中,需要使用 Width 和 Height 屬性來完成此設置。 |
常規控件的變化
與 Visual Basic 6.0 相比,.NET 中控件的工作方式發生了很大變化。以下九節介紹了其中一些變化,并介紹了這些變化對您在 .NET 中的開發工作的影響。
.NET 控件的創建
與 Visual Basic 6.0 相比,.NET 最大的變化之一是窗體上的實例化控件的代碼現在變為可見,以前所有這些代碼都隱藏在 ActiveX 控件內部和 Visual Basic 運行時中,F在,展開窗體后面的代碼中的 #Region 部分即可查看代碼。下面是一個窗體示例,包含一個標簽、一個文本框和一個按鈕控件。
Public Class frmTest Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'Windows 窗體設計器必需此調用。 InitializeComponent() '調用 InitializeComponent() 后添加初始化。 End Sub '窗體覆蓋配置以清除組件列表。Protected Overloads Overrides Sub Dispose
(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents TextBox1 As System.Windows.Forms.TextBox Friend WithEvents Button1 As System.Windows.Forms.Button 'Windows 窗體設計器所必需。 Private components As System.ComponentModel.Container '注意:以下步驟是 Windows 窗體設計器所必需的。 '可以使用 Windows 窗體設計器對其進行修改。'請勿使用代碼編輯器進行修改。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.Label1 = New System.Windows.Forms.Label() Me.TextBox1 = New System.Windows.Forms.TextBox() Me.Button1 = New System.Windows.Forms.Button() Me.SuspendLayout() ' 'Label1 ' Me.Label1.Name = "Label1" Me.Label1.TabIndex = 0 Me.Label1.Text = "Label1" ' 'TextBox1 ' Me.TextBox1.Location = New System.Drawing.Point(8, 80) Me.TextBox1.Name = "TextBox1" Me.TextBox1.TabIndex = 1 Me.TextBox1.Text = "TextBox1" ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(112, 32) Me.Button1.Name = "Button1" Me.Button1.TabIndex = 2 Me.Button1.Text = "Button1" ' 'frmTest ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(392, 250) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1, Me.TextBox1, Me.Label1}) Me.HelpButton = True Me.MaximizeBox = False Me.MinimizeBox = False Me.Name = "frmTest" Me.Text = "frmTest" Me.ResumeLayout(False) End Sub #End Region End Class
可以看出,每個控件都是先創建,然后再對屬性(如 Location 和 Size)進行初始化。在 Visual Studio 設計器的“屬性”窗口中設置的任何其他屬性也將作為代碼添加到此處。如果愿意,您可以僅使用“記事本”來設計用戶界面!
注意:請勿更改 #Region 區域中的任何代碼。當您在窗體中添加或刪除控件時,此部分代碼將由 Visual Studio 環境自動創建和銷毀。
錨定
象很多 Visual Basic 開發人員一樣,您肯定曾經多次通過編寫代碼將控件錨定在窗體的右下邊。如果您希望用戶能夠調整窗體大小,但又希望窗體上的某些控件相對于窗體底部和/或右邊總是保持位置不變,可以不用編寫代碼!Visual Studio .NET 提供了一個簡單的解決方案:即利用 Anchor 屬性。該屬性使您可以將控件錨定在容器的任一邊或所有邊。如果錨定在底部和/或右邊,當您調整窗體大小時,控件將呈漂浮狀;如果錨定在頂部和/或左邊,當您調整窗體大小時,控件的大小也將隨之改變。您需要實際操作一下,以了解該屬性對控件的影響。
圖 1:典型的數據輸入屏幕
如圖 1 所示,在用鍵盤鍵入數據的輸入窗體上,您可能希望使 Add、Update、Delete 和 Clear 按鈕保持在窗體的右下角。要實現此目的,請突出顯示這些按鈕,然后將 Anchor 屬性設置為 BottomRight。要執行此操作,請在 Properties 窗口中找到 Anchor 屬性,并單擊其下拉箭頭。清除選擇左邊和上邊的欄,然后選擇右邊和下邊的欄,如圖 2 所示。
圖 2:已激活 Anchor 下拉列表的 Properties 對話框
使用 Anchor 屬性,您不必編寫任何代碼行就能將控件錨定在窗體的任何邊。通過選擇圖形化菜單中的選項,您可以選擇所需的操作。在代碼中,可以使用諸如 TopLeft、BottomRight、Left、Right、Top、Bottom、TopLeftBottom 和 All 等常量來設置屬性值。
靠接
Dock 屬性類似于 Anchor 屬性,使您可以將控件靠接到容器的任何邊?拷涌丶䲡r,控件將隨窗體的縮放而縮放,但其靠接的邊保持不變,如果將控件靠接在窗體的所有邊,則控件將充滿整個窗體。
關于控件數組
在 Visual Basic 6.0 中,將所有控件的 Name 屬性設置為相同的值便可以創建控件數組。隨后,每個控件的 Index 屬性會被設置為不同的編號。Index 值被傳遞給該組控件的任意事件,這樣您就可以知道哪個控件調用了該事件。這是 Visual Basic 6.0 中控件數組的用途之一,即一個事件過程處理多個控件的代碼。
而在 Visual Basic .NET 中,處理控件數組的方式則大不一樣。實現一個過程處理多個控件的事件的方法有兩種:使用內嵌于 .NET 類中的 AddHandler 過程,或在過程中使用 Handles 子句。
如果您只希望編寫一個 Click 事件,使窗體底部的所有按鈕都具備該事件,您可以雙擊其中一個按鈕,使代碼窗口生成一個 Click 事件過程。此過程的代碼如下:
Private Sub btnSave_Click( _ ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnSave.Click, btnNew.Click, btnDelete.Click MessageBox.Show("Click 事件") End Sub
盡管以上代碼很簡單,但它說明了不同控件如何調用同一過程。除了創建控件數組,您還可以通過創建并指定事件處理程序來響應多個控件的一個或多個事件。
除了 Handles 子句,您還可以使用 AddHandler 語句實現一個過程處理多個控件的事件。該語句使您可以向任何事件添加事件處理程序,并指定要調用的過程。由于可以向事件添加事件處理程序,您可以使用一系列事件處理程序來處理相同的事件,實際上是在告訴控件應該調用哪個過程來響應事件。因為是委托事件處理程序來處理這一新過程,所以此過程稱為“代理”。
要使代理生效,請在窗體的 New 方法中現有代碼的 TODO 注釋下面添加類似下面的代碼:
AddHandler btnDelete.Click, AddressOf ButtonClick
AddHandler btnNew.Click, AddressOf ButtonClick
完成上述代碼的添加后,如果單擊 New、Delete、或 Save 按鈕,則會調用 ButtonClick 事件過程。當然,您可能需要確定調用此特殊事件過程的按鈕。要做到這一點,您可以使用傳遞給所有事件過程的 sender 參數,它是產生該特殊事件的對象。因此您可以編寫如下代碼:
Private Sub ButtonClick( _ ByVal sender As Object, _ ByVal e As System.EventArgs) If sender Is btnNew Then MessageBox.Show("已按下 New 按鈕") ElseIf sender Is btnSave Then MessageBox.Show("已按下 Save 按鈕") ElseIf sender Is btnDelete Then MessageBox.Show("已按下 Delete 按鈕") End If End Sub
這兩種創建數組的方法沒有本質區別,您可以任意選擇一種。
默認和取消按鈕
在舊版本的 Visual Basic 中,需要將 CommandButton 控件的 Default 屬性設置為 True,以告訴 Visual Basic 當按下 Enter 鍵時應該調用此按鈕的 Click 事件;設置另一個 CommandButton 控件的 Cancel 屬性,以告訴 Visual Basic 當按下 Esc 鍵時應該調用此按鈕的 Click 事件;然后還必須為上述每個 Click 事件過程編寫代碼以關閉窗體,并且很可能需要設置屬性,告訴調用此窗體的例程按下的是哪個按鈕。
現在,無需為這些按鈕編寫任何代碼即可實現此目的,用戶只需將每個按鈕的 DialogResult 屬性設置為特定的值。例如,如果窗體上包含“確定”和“取消”按鈕,請將這兩個按鈕的 DialogResult 屬性分別設置為 OK 和 Cancel。然后將窗體的 AcceptButton 屬性設置為“確定”按鈕,將窗體的 CancelButton 屬性設置為“取消”按鈕。
完成這些屬性的設置后,便可以使用 ShowDialog 方法顯示窗體,而且兩個按鈕都可以自動關閉窗體。然后,窗體的 DialogResult 屬性會被設置為在按下的按鈕中設置的 DialogResult 值。這樣,就可以從調用程序內部確定關閉窗體的按鈕。
上下文相關菜單
在 Windows 應用程序中,您可能需要為控件指定特殊菜單,以在使用鼠標右鍵單擊該控件時顯示該菜單。要在 Visual Basic 6.0 中實現這一功能,您需要將已創建的菜單的 Visible 屬性設置為 False,然后在該控件的 Click 事件過程中編寫代碼,以顯示隱藏的菜單。
在 .NET 中,您可以使用 ContextMenu 屬性創建與窗體的 MainMenu 完全分開的菜單。您只需設置控件的 ContextMenu 屬性,就可以將此菜單指定給該控件,而不必另外編寫任何代碼。
在窗體上鎖定控件
創建用戶界面后,您需要確保在單擊控件添加代碼時不會意外地移動控件。Visual Basic 6.0 中有一個選項可以鎖定窗體上的所有控件。該選項非常好用,但有時仍需要在大型窗體上處理一小部分內容,這時候就會產生問題。為了處理這一小部分內容,您必須取消所有控件的鎖定,這樣就有可能不小心移動控件。
在 .NET 中,可以將控件分組鎖定或單獨鎖定,這在大型窗體上處理多組控件時非常有用。
MDI 窗體上的控件
在 Visual Basic 6.0 中,只有那些具有 Align 屬性的控件才能放置到 MDI 窗體上;而在 .NET 中,您可以將任何控件放置到 MDI 窗體上。
DDE 已被刪除
在 .NET 語言中,動態數據交換 (DDE) 技術已不再可用。在 .NET 中,程序之間的通訊方法很多,不再需要此技術,因此,所有控件中具有 Link 前綴的所有屬性均已被刪除。
標準控件的變化
本文前面提到過,很多標準控件的屬性都發生了變化。下面是已改變的屬性或已添加到每個不同標準控件中的屬性。下表列出的區別僅限于這些控件的特定屬性,前面提到過的公共屬性也有變化,在此不再贅述。
標簽控件
新屬性 | 說明 |
---|---|
Text | 此屬性在 Visual Basic 6.0 中稱為 Caption。 |
文本框控件
新屬性 | 說明 |
---|---|
AcceptsReturn | 如果設置為 True,則多行文本框會將 CRLF 當作有效字符。要禁止在文本框中輸入 CRLF,請將此屬性設置為 False。 |
AcceptsTab | 如果設置為 True,則多行文本框會將制表符當作有效字符。要禁止在文本框中輸入制表符,請將此屬性設置為 False。 |
CharacterCasing | 控制用戶在此控件中鍵入的字母的大小寫。選項包括 Normal、UpperCase 和 LowerCase。 |
ReadOnly | 如果要禁止用戶在此文本框中輸入文本,請將此屬性設置為 True。此屬性與原來的 Locked 屬性功能相同。 |
TextAlign | 當用戶在文本區域鍵入數據時,此屬性控制文本的對齊方式?蓪⒋藢傩栽O置為 Left、Right 或 Center。 |
按鈕控件
新屬性 | 說明 |
---|---|
BackgroundImage | 允許在按鈕上設置背景圖像,還可以在圖像上添加文本。 |
DialogResult | 當將窗體作為對話框調用時,設置返回結果。如果用戶按下此按鈕,將返回此屬性中的值。 |
FlatStyle | 改變按鈕的外觀。選項包括 Flat、PopUp、Standard 和 System。如果使用 Windows XP,則應該選擇 System,因為此選項允許您使用 XP 主題。 |
Image | 在此按鈕中顯示的圖像。 |
ImageAlign | 按鈕中圖像的放置位置。 |
ImageIndex | ImageList 控件(在 ImageList 屬性中設置)中圖像的索引號。 |
ImageList | ImageList 控件的名稱,在此控件中使用 ImageIndex 屬性檢索圖像。 |
Text | 此屬性在 Visual Basic 6.0 中稱為 Caption。 |
TextAlign | 控制按鈕上顯示的文本的對齊方式。選項包括 left、right、center、middle、top 或 bottom,或任何上述選項的組合。 |
復選框控件
新屬性 | 說明 |
---|---|
AutoCheck | 如果設置為 True,則單擊控件的任意位置,其狀態都會從選中變為取消選中。 |
BackgroundImage | 允許在復選框控件上設置背景圖像,還可以在圖像上添加文本。 |
CheckAlign | 確定復選框控件的位置。Visual Basic 6.0 將文本的位置限制在復選框內的左側或右側,F在,您可以選擇 left、right、up、down 或 center。 |
Checked | True=選中,False=取消選中。 |
CheckState | 此屬性允許用戶在設計時設置三種狀態,以指明在運行時希望該控件顯示的內容?梢赃x擇 Checked、Unchecked 或 Indeterminate。注意:只有在將 ThreeState 屬性設置為 True 時,才能設置 Indeterminate 選項。 |
FlatStyle | 改變復選框控件的外觀。選項包括 Flat、PopUp、Standard 和 System。 |
Image | 在復選框中顯示的圖像。 |
ImageAlign | 復選框中圖像的放置位置。 |
ImageIndex | ImageList 控件(在 ImageList 屬性中設置)中圖像的索引號。 |
ImageList | ImageList 控件的名稱,在此控件中使用 ImageIndex 屬性檢索圖像。 |
Text | 此屬性在 Visual Basic 6.0 中稱為 Caption。 |
ThreeState | 如果此屬性設置為 True,則可以將 CheckState 屬性設置為 Indeterminate,同時它還允許用戶在 Checked、Unchecked 和 Indeterminate 三種狀態間切換。 |
單選按鈕控件
新屬性 | 說明 |
---|---|
AutoCheck | 如果設置為 True,則單擊該控件的任意位置,其狀態將從選中變為取消選中。 |
BackgroundImage | 允許在單選按鈕上設置背景圖像,還可以在圖像上添加文本。 |
CheckAlign | 確定單選按鈕中選中標記的位置。在 Visual Basic 6.0 中,只能將其放在文本的左側或右側。而在 .NET 中,您可以選擇 left、right、up、down 或 center。 |
Checked | 此屬性在 Visual Basic 6.0 中稱為 Value。 |
FlatStyle | 改變單選按鈕控件的外觀。選項包括 Flat、PopUp、Standard 和 System。 |
Image | 在單選按鈕中顯示的圖像。 |
ImageAlign | 單選按鈕中圖像的放置位置。 |
ImageIndex | ImageList 控件(在 ImageList 屬性中設置)中圖像的索引號。 |
ImageList | ImageList 控件的名稱,在此控件中使用 ImageIndex 屬性檢索圖像。 |
Text | 此屬性在 Visual Basic 6.0 中稱為 Caption。 |
TextAlign | 控制單選按鈕上顯示的文本的對齊方式?蓪⒋藢傩栽O置為 left、right、center、middle、top 或 bottom,或上述任何選項的組合。 |
組合框控件
新屬性 | 說明 |
---|---|
DisplayMember | 在控件的列表部分顯示從每一對象加載到 ComboBox 中的項。DisplayMember 的默認值是 ToString 方法。 |
DropDownStyle | 此屬性在 Visual Basic 6.0 中稱為 Style。與在 Visual Basic 6.0 中一樣,您可以選擇 Simple、DropDownList 和 DropDown。 |
DropDownWidth | 組合框下拉部分的寬度(以像素計算)?梢圆煌诖绑w上組合框的實際尺寸。 |
MaxDropDownItems | 用戶使用組合框的下拉部分時允許顯示的項數。 |
MaxLength | 將 DropDownStyle 屬性設置為 Simple 時,可以輸入的最大字符數。 |
ValueMember | 從選定項中檢索數據。默認值為 ToString 方法。 |
列表框控件
新屬性 | 說明 |
---|---|
ColumnWidth | 將 MultiColumn 屬性設置為 True 時各列的寬度。 |
DisplayMember | 在控件的列表部分顯示從每一對象加載到 ListBox 中的項。DisplayMember 的默認值是 ToString 方法。 |
HorizontalExtent | 如果將 HorizontalScrollbar 屬性設置為 True,則可以在此屬性中輸入一個數字,表示滾動條可以滾動的最大寬度(以像素計算)。 |
HorizontalScrollbar | 如果不想在數據的寬度大于此方框時顯示水平滾動條,請將該屬性設置為 False。 |
ItemHeight | 使用固定字體時列表框中各項的高度。 |
Items | 代替 Visual Basic 6.0 ListBox 控件的 List 屬性。 |
MultiColumn | 代替 Visual Basic 6.0 中的 Columns 屬性。如果希望顯示多行,請將此值設置為 True。 |
ScrollAlwaysVisible | 如果希望在數據量很少時仍顯示滾動條,請將此屬性設置為 True。這有助于用戶根據此列表框中可能輸入的數據確定列表框的適當寬度。如果在運行時加載數據后,可以看到滾動條,最好能夠在數據太大時正確設置控件的寬度。 |
SelectionMode | 代替 Visual Basic 6.0 中的 MultiSelect 屬性。 |
UseTabStop | 如果不希望 Tab 字符在列表框中代表不同的列,請將此屬性設置為 False。 |
ValueMember | 從選定項中檢索數據。默認值為 ToString 方法。 |
圖片框控件
新屬性 | 說明 |
---|---|
BackgroundImage | 允許在圖片框上設置背景圖像,還可以在圖像上添加文本。 |
BorderStyle | 包括 None、Fixed 和 Fixed3D 選項。 |
Image | 用于代替 Picture 屬性。 |
SizeMode | 控制圖片的顯示方式?梢赃x擇的值包括 Normal、StretchImage、AutoSize 和 CenterImage。 |
HScrollBar 控件
新屬性 | 說明 |
---|---|
Maximum | 代替 Visual Basic 6.0 中的 Max 屬性。 |
Minimum | 代替 Visual Basic 6.0 中的 Min 屬性。 |
VScrollBar 控件
屬性 | 說明 |
---|---|
Maximum | 代替 Visual Basic 6.0 中的 Max 屬性。 |
Minimum | 代替 Visual Basic 6.0 中的 Min 屬性。 |
其他控件
除了 Visual Basic 6.0 中的標準控件外,Visual Basic .NET 中還升級了許多其他控件。實際上,升級的控件非常多,每個控件都可以單獨寫一篇文章。了解本文列出的變化后,對以后在 .NET 中使用這些新控件時遇到的變化類型就會有一個清楚的認識。
總結
在 .NET 中創建用戶界面的方式已經發生了很大的變化。您以前使用過的一些控件已經不復存在,或者變得與原來大不一樣。要執行特定的操作,您需要使用這些新屬性,有時還必須使用系統類來代替控件。您會發現 .NET 控件相對于原來的 ActiveX 控件有了相當大的改進。使用這些新屬性和新方法,可以幫助您開發出更好的 Windows 應用程序。
關于作者
Paul D. Sheriff 是 PDSA, Inc. (www.pdsa.com) 的老板,該公司位于南加利福尼亞州,是一家自定義軟件開發和咨詢公司。Paul 是南加利福尼亞的 MSDN 區域總監,著有《Paul Sheriff Teaches Visual Basic》一書,他為 Keystone Learning Systems 制作了 70 多套關于 Visual Basic、SQL Server、.NET 和 Web 開發的視頻教材,最近還將與 Ken Getz 合作出版一本關于 SAMS 的書,書名是《ASP.NET Jumpstart》。有關詳細信息,請訪問 PDSA, Inc. 的 Web 站點,或通過電子郵件地址 PSheriff@pdsa.com 直接與 Paul 聯系。
關于 Informant Communications Group
Informant Communications Group, Inc. 是一家致力于信息技術行業的多媒體公司。它成立于 1990 年,專門從事軟件開發發布、會議、目錄發布和 Web 站點工作。ICG 在美國和英國均設有辦事處,目前已成為享有盛譽的媒體和營銷內容集成商,以高質量的技術信息滿足 IT 人員不斷增長的需求。
文章來源于領測軟件測試網 http://www.kjueaiud.com/
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月