Visual Basic 6.0 控制項和 .NET 控制項的區別

來源:互聯網
上載者:User
visual|控制項|區別 Visual Basic 6.0 控制項和 .NET 控制項的區別


摘要:本文簡單介紹了 Microsoft Visual Basic 6.0 中的標準控制項和等效的 Microsoft .NET 控制項。

目標

  • 瞭解哪些 Visual Basic 6.0 ActiveX 控制項在 .NET 中具有等效控制項。
  • 瞭解 .NET 控制項中哪些屬性發生了變化。
  • 瞭解 .NET 中有哪些新控制項。

前提條件


要徹底理解本文內容,需要滿足以下條件:
  • 瞭解什麼是 ActiveX 控制項。
  • 使用 Visual Basic 6.0 控制項和 ActiveX 控制項編寫過 Windows 應用程式。

目錄

  • 標準控制項的差別
  • .NET 中的新控制項
  • 屬性的變化
  • 常規控制項的變化
  • 標準控制項的變化
  • 總結
標準控制項的差別
從內部構造來看,Microsoft .NET 控制項與 Microsoft® ActiveX® 控制項存在很大差別,因為 .NET 控制項是從其他類的階層建立的。這些 .NET 控制項所繼承的類有若干個,隨著您對實際控制項的深入瞭解,您會發現每一個類都經過最佳化並添加了更多的功能。控制項的類階層的頂層是 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-CheckedTabControl結合了 Visual Basic 6.0 中 TabStripSSTab 兩個控制項的功能。 Splitter使您可以建立類似於瀏覽器的、具有兩個窗格的介面。 DomainUpDown將文字框和 UpDown 箭頭組合在一起。其功能類似於組合框,您可以將任何類型的資料放入列表,使用者可以通過單擊上箭頭和下箭頭來瀏覽資料。 TrackBar與 Visual Basic 6.0 中的舊 Slider 控制項非常相似。 HelpProvider如果將此控制項添加到表單的元件匣中,它將向表單的每個控制項添加 HelpStringHelpTopicShowHelp 屬性。 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 控制項的方法。 PrintPreviewDialogPrintPreviewControl 結合使用。 PrintPreviewControl允許將文檔發送到預覽列印視窗而不是發送到印表機。 ErrorProvider如果將此控制項添加到表單的元件匣中,它將向表單的每個控制項添加 ErrorIconAlignmentIconPadding 屬性。 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“講述人”附件所朗讀的說明內容。“講述人”是供有視覺障礙的使用者使用的一種通訊工具,它可以通過電腦擴音器為使用者朗讀電腦螢幕上的文字。大部分 Windows 系統都具有此功能,使用方法是依次單擊“開始”|“程式”|“附件”|“協助工具輔助”,然後單擊“講述人”。當您在螢幕上移動滑鼠時,該工具將朗讀螢幕上的文字。當填寫此說明並運行“講述人”工具時,它將為使用者朗讀此說明。 AccessibleName“講述人”附件所報告的控制項名稱。 AccessibleRole“講述人”附件為使用者報告的角色。 AllowDrop確定控制項是否接收拖放通知。 Anchor確定控制項在表單中的錨定位置。可以選擇您需要的任何錨定樣式。 ContextMenu將此屬性設定為 ContextMenu 控制項的名稱,這樣在此控制項上單擊滑鼠右鍵時,將自動顯示控制項菜單。 Dock確定控制項在表單中的靠接位置。靠接控制項時,控制項將隨表單的大小而縮放,但靠接位置不變。 Locked如果設定為 True,則此控制項在設計時將無法移動。 Modifiers確定控制項的範圍。預設情況下,.NET 中的所有控制項都為 Friend。在 Visual Basic 的舊版本中,所有控制項都為 Public。現在,您可以選擇 PrivateProtectedFriendPublic

已改變的屬性


在 Visual Basic 6.0 中,有四個屬性是所有控制項所必需的,即: LeftTopWidthHeight。雖然這些屬性仍然可以使用,但最好使用稱為 LocationSize 的新結構。表 5 列出了這些新屬性,並介紹了這些新屬性的結構。
表 5:.NET 中的 Location 和 Size 屬性屬性說明 Location指出控制項所在位置的 X 和 Y 座標的 Point 結構。在舊版本的 Visual Basic 中,需要使用 LeftTop 屬性來完成此設定。 Size指出控制項的寬度和高度的 Size 結構。在舊版本的 Visual Basic 中,需要使用 WidthHeight 屬性來完成此設定。 常規控制項的變化
與 Visual Basic 6.0 相比,.NET 中控制項的工作方式發生了很大變化。以下九節介紹了其中一些變化,並介紹了這些變化對您在 .NET 中的開發工作的影響。

.NET 控制項的建立


與 Visual Basic 6.0 相比,.NET 最大的變化之一是表單上的執行個體化控制項的代碼現在變為可見,以前所有這些代碼都隱藏在 ActiveX 控制項內部和 Visual Basic 運行時中。現在,展開表單後面的代碼中的 #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 RegionEnd Class

可以看出,每個控制項都是先建立,然後再對屬性(如 LocationSize)進行初始化。在 Visual Studio 設計器的“屬性”視窗中設定的任何其他屬性也將作為代碼添加到此處。如果願意,您可以僅使用“記事本”來設計使用者介面!
注意:請勿更改 #Region 地區中的任何代碼。當您在表單中添加或刪除控制項時,此部分代碼將由 Visual Studio 環境自動建立和銷毀。

錨定


象很多 Visual Basic 開發人員一樣,您肯定曾經多次通過編寫代碼將控制項錨定在表單的右下邊。如果您希望使用者能夠調整表單大小,但又希望表單上的某些控制項相對於表單底部和/或右邊總是保持位置不變,可以不用編寫代碼!Visual Studio .NET 提供了一個簡單的解決方案:即利用 Anchor 屬性。該屬性使您可以將控制項錨定在容器的任一邊或所有邊。如果錨定在底部和/或右邊,當您調整表單大小時,控制項將呈漂浮狀;如果錨定在頂部和/或左邊,當您調整表單大小時,控制項的大小也將隨之改變。您需要實際操作一下,以瞭解該屬性對控制項的影響。

 

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。