共用方式為


備妥要升級的 Visual Basic 6.0 應用程式

更新:2007 年 11 月

雖然將 Visual Basic 6.0 應用程式升級為 Visual Basic 2008 的程序大都是自動的,您還是可以進行一些小小的準備工作讓升級工作最佳化。

您可以遵循本主題中的建議,將專案升級為 Visual Basic 2008 之後所需的變更量減到最少,在某些情況下甚至可以排除這些變更。多數情況下,這些建議只代表良好的程式設計典範,不過,有些建議也會指出哪些物件和方法沒有對等用法,如果您想要將專案升級為 Visual Basic 2008,請謹慎使用這些物件和方法。

一般建議

這項建議看起來顯而易見,但是如果您的專案未經編譯,而且是直接在 Visual Basic 6.0 下執行,就無法升級成功。建議您在要進行升級的電腦中安裝 Visual Basic 6.0。除了可以讓您測試應用程式外,也可以確保升級所需的必要控制項、元件和型別程式庫都是有效的。

Visual Basic 2008 讓您可以升級 Visual Basic 6.0 的專案,如果有以 Visual Basic 版本 1 到 5 所撰寫的專案,應該在將專案升級為 Visual Basic 2008 前,先將其載入 Visual Basic 6.0 (選擇升級 Microsoft ActiveX 控制項)、編譯,然後再儲存起來。

表單和控制項的考量

Visual Basic 2008 擁有新的表單套件 (Package):Windows Form。Windows Form 大部分都和 Visual Basic 6.0 中的表單套件相容,但是還是有某些重要的差異,概述如下:

  • Visual Basic 2008 不支援 OLE 容器控制項,您應該避免在 Visual Basic 6.0 應用程式中使用此控制項。

  • Visual Basic 2008 中沒有 Shape 控制項。方形和矩形會升級成標籤 (Label),橢圓形和圓形則無法升級。您應該避免在應用程式中使用這些控制項。

  • Visual Basic 2008 中沒有 Line 控制項。水平線和垂直線會升級成標籤。斜線將不會升級,應該避免使用這些控制項。

  • Visual Basic 2008 有一組新的繪圖命令,可取代 Form 方法 (Circle、CLS、PSet、Line 和 Point)。由於新的物件模型和 Visual Basic 6.0 非常不同,這些方法無法被升級。

  • 對於 Timer 控制項而言,將 Interval 屬性設定為 0 並不會停用計時器,而是將間隔重設為 1。在 Visual Basic 6.0 專案中,應該將 Enabled 設定為 False,而不是將 Interval 設定為 0。

  • Visual Basic 2008 具有兩個功能表控制項,分別為 MenuStripContextMenuStrip,而 Visual Basic 6.0 具有一個功能表控制項,可做為 MainMenu 或 ContextMenu 控制項開啟。所有的功能表控制項都會升級為單一的 MenuStrip 元件,其中包含每一個功能表控制項的 MenuItem,您必須重建內容功能表並刪除多餘的 MenuStrip 控制項。

  • Visual Basic 2008 不支援動態資料交換 (DDE)。

  • Visual Basic 2008 不支援 Form.PrintForm 方法。

  • 雖然 Visual Basic 2008 支援拖放功能,但是它的物件模型 (Object Model) 和 Visual Basic 6.0 中的不同。因此,Visual Basic 6.0 的拖放屬性 (Property) 和方法無法升級。

  • Visual Basic 2008 具有改良的 Clipboard 物件 (My.Computer.Clipboard),可以提供更多功能,並且比 Visual Basic 6.0 Clipboard 物件支援更多剪貼簿檔案格式。但是,由於物件模型間的差異,Clipboard 陳述式無法自動升級。

  • Visual Basic 2008 在執行階段不支援表單和控制項的 Name 屬性,因此,您不應該撰寫程式碼,反覆查看 Controls 集合尋找特定名稱的控制項(現在使用 .NET FrameworkSystem.Reflection 類別 (Class) 即可使用此功能)。

資料建議

Visual Basic 2008 加入了名為 ADO.NET 的 ADO 增強版本,該版本已經過最佳化,可在分散式應用程式中使用資料,當您在分散式應用程式內使用資料時,可以透過 ADO 提供效能改善。

Visual Basic 2008 中的程式碼只需做少許的修改,即能繼續使用遠端資料物件 (RDO) 和 ADO。但是,Visual Basic 2008 不支援資料存取物件 (DAO) 和 RDO 對控制項、資料控制項或 RDO 使用者連接的資料繫結 (Data Binding)。如果應用程式中會包含 DAO 或 RDO 資料繫結,建議您繼續使用 Visual Basic 6.0 或在將專案升級為 Visual Basic 2008 前,先將 DAO 或 RDO 資料繫結升級為 ADO,因為 Windows Form 支援 ADO 資料繫結。如何將 Visual Basic 的 DAO 或 RDO 升級為 ADO 的資訊可於 Visual Basic 6.0 的說明中取得。

Web 架構建議

Visual Basic 2008 加入了 ASP 的增強版本 ASP.NET,並且以 Web Form 強化架構,後者是使用類似 Visual Basic 的事件模型來產生 Web 網頁的技術。此架構為伺服器架構。

符合下列準則的 Web 架構應用程式將最容易升級:

  • 依照 Microsoft 多層式架構方針。

  • 使用 Active Server Pages (ASP)。

  • 使用 Visual Basic 6.0 或 Visual C++ 6.0 COM 物件做為商務邏輯。

Visual Basic 2008 完全支援 ASP,您可以使用 ASP、ASP.NET 和 Web Form 繼續擴充應用程式。Visual Basic 6.0 和 Visual C++ 6.0 商務物件 (Business Ojbect) 可以不經修改繼續使用,或是升級為 Visual Basic 2008。

在 Visual Basic 2008 中,Webclass 已不存在。現有 Webclass 應用程式可以和 Visual Basic 2008 的 Web Form 和 ASP 應用程式進行溝通,或是直接升級為 Web Form 應用程式。

請參閱

概念

升級前的考量

為什麼需要升級

其他資源

升級由舊版 Visual Basic 建立的應用程式

語言升級的建議