您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關VB6.0和VB.NET窗體的區別是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
VB6.0對VB.NET
窗體(窗體類)正如其它類一樣,無論在哪個版本的 Visual Basic 中都是必不可少的。窗體也有屬性、方法和事件,且在同一個項目中也允許創建多個窗體實例。例如:假設你在 VB6.0項目中定義了一個窗體 Form2 ,則你可以創建它的 3 個實例并同時顯示出來。代碼如下:
Dim myFirstForm As Form2 Dim mySecondForm As Form2 Dim myThirdForm As Form2 Set myFirstForm = New Form2 Set mySecondForm = New Form2 Set myThirdForm = New Form2 myFirstForm.Show mySecondForm.Show myThirdForm.Show
以上代碼用 3 條 Set 語句生成了 3 個 Form2 實例。你可以把它原封不動地搬到VB.NET中運行,它照樣能夠正確顯示 3 個 Form2 窗體。在這里,“Form2” 其實相當于一個普通的類。VB6.0允許代碼直接訪問尚未實例化的窗體類;然而VB.NET卻規定在訪問任何類之前都要進行實例化,而且必須借助實例來訪問類。這種變化當然有可能造成許多疑惑。VB6.0等早期版本能自動生成每個窗體的默認實例,從而允許直接通過窗體名稱來訪問窗體。例如:在VB6.0項目中,可以直接用代碼“Form2.Show ”顯示 Form2 的默認實例;然而在VB.NET中,這么做只會引發錯誤,因為VB.NET既不會創建默認的窗體實例,也不允許直接訪問尚未實例化的窗體類。
這就是VB.NET與早期 Visual Basic 在窗體處理機制上的關鍵區別——你只有先創建窗體實例,然后才可以顯示窗體外觀、訪問窗體屬性及其控件。它們還有另一個區別:VB6.0項目自動創建的默認窗體實例都能被當成全局變量使用,也就是說,項目中的任何代碼都能直接引用窗體,并且每次被引用的都是該窗體的同一個實例。例如:你可以在窗體中 button 控件的 Click 事件處理程序里用代碼 “Form2.Show” 顯示 Form2 窗體,然后用下列代碼改變 Form2 中某個 textbox 控件 (TextBox1)的內容:
Form2.TextBox1.Text = "Fred"
可是,你在VB.NET中運行它卻會得到一條錯誤消息:“Reference to a Non-Shared Member Requires an Object Reference”(引用非共享類成員必須使用對象指針)。這是在提醒你:你正在訪問的類尚未進行實例化。有一個簡便的解決方案:當你在調試過程中得到上述錯誤消息時,就把相應的語句:
Form2.Show()
改成:
Dim myForm2 As New Form2() myForm2.Show()
此方案適用于大多數場合。然而,當項目中還有其它代碼訪問同一個 Form2 實例 (比如改變其中 TextBox1 的文本) 時,你可能會考慮把下列語句:
Form2.TextBox1.Text = "Fred"
改成:
Dim myForm2 As New Form2() myForm2.TextBox1.Text = "Fred"
不幸的是,這段代碼創建了一個新的 Form2 實例,結果你所訪問的窗體不再是原先的 Form2 ,這豈不麻煩了!更壞的是,你不會因此而得到任何錯誤消息提示,同時你先前調用 Show() 顯示的 Form2 窗體也不會發生任何變化。
以上就是VB6.0和VB.NET窗體的區別是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。