偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

詳解VB6.0和VB.NET窗體的區(qū)別

開(kāi)發(fā) 后端
這里介紹VB6.0和VB.NET窗體的區(qū)別,窗體(窗體類(lèi))正如其它類(lèi)一樣,無(wú)論在哪個(gè)版本的 Visual Basic 中都是必不可少的。窗體也有屬性、方法和事件,且在同一個(gè)項(xiàng)目中也允許創(chuàng)建多個(gè)窗體實(shí)例。

VB6.0和VB.NET還是比較常用的,于是我研究了一下VB6.0和VB.NET得區(qū)別,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。

VB6.0對(duì)VB.NET

窗體(窗體類(lèi))正如其它類(lèi)一樣,無(wú)論在哪個(gè)版本的 Visual Basic 中都是必不可少的。窗體也有屬性、方法和事件,且在同一個(gè)項(xiàng)目中也允許創(chuàng)建多個(gè)窗體實(shí)例。例如:假設(shè)你在 VB6.0項(xiàng)目中定義了一個(gè)窗體 Form2 ,則你可以創(chuàng)建它的 3 個(gè)實(shí)例并同時(shí)顯示出來(lái)。代碼如下:

  1. Dim myFirstForm As Form2  
  2. Dim mySecondForm As Form2  
  3. Dim myThirdForm As Form2  
  4.  
  5. Set myFirstForm = New Form2  
  6. Set mySecondForm = New Form2  
  7. Set myThirdForm = New Form2  
  8.  
  9. myFirstForm.Show  
  10. mySecondForm.Show  
  11. myThirdForm.Show  

以上代碼用 3 條 Set 語(yǔ)句生成了 3 個(gè) Form2 實(shí)例。你可以把它原封不動(dòng)地搬到VB.NET中運(yùn)行,它照樣能夠正確顯示 3 個(gè) Form2 窗體。在這里,“Form2” 其實(shí)相當(dāng)于一個(gè)普通的類(lèi)。VB6.0允許代碼直接訪問(wèn)尚未實(shí)例化的窗體類(lèi);然而VB.NET卻規(guī)定在訪問(wèn)任何類(lèi)之前都要進(jìn)行實(shí)例化,而且必須借助實(shí)例來(lái)訪問(wèn)類(lèi)。這種變化當(dāng)然有可能造成許多疑惑。VB6.0等早期版本能自動(dòng)生成每個(gè)窗體的默認(rèn)實(shí)例,從而允許直接通過(guò)窗體名稱(chēng)來(lái)訪問(wèn)窗體。例如:在VB6.0項(xiàng)目中,可以直接用代碼“Form2.Show ”顯示 Form2 的默認(rèn)實(shí)例;然而在VB.NET中,這么做只會(huì)引發(fā)錯(cuò)誤,因?yàn)閂B.NET既不會(huì)創(chuàng)建默認(rèn)的窗體實(shí)例,也不允許直接訪問(wèn)尚未實(shí)例化的窗體類(lèi)。

這就是VB.NET與早期 Visual Basic 在窗體處理機(jī)制上的關(guān)鍵區(qū)別——你只有先創(chuàng)建窗體實(shí)例,然后才可以顯示窗體外觀、訪問(wèn)窗體屬性及其控件。它們還有另一個(gè)區(qū)別:VB6.0項(xiàng)目自動(dòng)創(chuàng)建的默認(rèn)窗體實(shí)例都能被當(dāng)成全局變量使用,也就是說(shuō),項(xiàng)目中的任何代碼都能直接引用窗體,并且每次被引用的都是該窗體的同一個(gè)實(shí)例。例如:你可以在窗體中 button 控件的 Click 事件處理程序里用代碼 “Form2.Show” 顯示 Form2 窗體,然后用下列代碼改變 Form2 中某個(gè) textbox 控件 (TextBox1)的內(nèi)容:

  1. Form2.TextBox1.Text = "Fred"  

可是,你在VB.NET中運(yùn)行它卻會(huì)得到一條錯(cuò)誤消息:“Reference to a Non-Shared Member Requires an Object Reference”(引用非共享類(lèi)成員必須使用對(duì)象指針)。這是在提醒你:你正在訪問(wèn)的類(lèi)尚未進(jìn)行實(shí)例化。有一個(gè)簡(jiǎn)便的解決方案:當(dāng)你在調(diào)試過(guò)程中得到上述錯(cuò)誤消息時(shí),就把相應(yīng)的語(yǔ)句:

  1. Form2.Show()  

改成:

  1. Dim myForm2 As New Form2()  
  2. myForm2.Show()  

此方案適用于大多數(shù)場(chǎng)合。然而,當(dāng)項(xiàng)目中還有其它代碼訪問(wèn)同一個(gè) Form2 實(shí)例 (比如改變其中 TextBox1 的文本) 時(shí),你可能會(huì)考慮把下列語(yǔ)句:

  1. Form2.TextBox1.Text = "Fred" 

改成:

  1. Dim myForm2 As New Form2()  
  2. myForm2.TextBox1.Text = "Fred"  

不幸的是,這段代碼創(chuàng)建了一個(gè)新的 Form2 實(shí)例,結(jié)果你所訪問(wèn)的窗體不再是原先的 Form2 ,這豈不麻煩了!更壞的是,你不會(huì)因此而得到任何錯(cuò)誤消息提示,同時(shí)你先前調(diào)用 Show() 顯示的 Form2 窗體也不會(huì)發(fā)生任何變化。

【編輯推薦】

  1. 簡(jiǎn)單描述VB.NET散列函數(shù)
  2. 詳細(xì)分析VB.NET讀寫(xiě)文本文件
  3. VB.NET GroupBox控件學(xué)習(xí)經(jīng)驗(yàn)
  4. 概括VB.NET DomainUpDown控件
  5. VB.NET編碼算法學(xué)習(xí)筆記
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-10-09 16:00:34

VB6.0開(kāi)發(fā)

2009-10-14 15:11:28

VB6.0實(shí)現(xiàn)多窗體交

2009-11-02 17:12:01

VB和VB.NET

2009-10-10 17:06:09

VB和VB.NET

2009-10-29 14:02:24

VB和VB.NET比較

2010-01-11 15:12:30

VB.NET特殊窗體

2009-10-09 16:54:03

VB.NET窗體

2009-10-14 15:20:21

VB.NET窗體指針

2009-10-14 15:34:29

VB.NET窗體編程模

2009-10-15 17:44:40

VB6.0 datat

2009-10-16 09:35:24

VB.NET制作透明窗

2009-10-14 13:56:05

VB.NET數(shù)據(jù)窗體

2010-01-13 09:31:39

VB.NET窗體打印

2009-10-09 15:26:24

VB6.0開(kāi)發(fā)環(huán)境

2009-10-10 16:44:52

VB.NET開(kāi)發(fā)控件

2010-01-21 17:34:48

VB.NET Bool

2009-10-20 17:38:54

VB.NET Comp

2010-01-12 18:35:43

VB.NET Stru

2009-10-22 16:46:03

VB.NET初步知識(shí)

2010-01-13 15:52:59

VB.NET浮動(dòng)窗體
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)