1.
在2003的編譯器下:
將2003所有的Form、類別、Modual…等程式碼,依專案的分類,將程式碼歸在一個Namespace底下,
不同專案可以不同的Namespace 名稱,並且確定程式可以執行。
如果已經有了就不要再宣告Namespace了。
為什麼要宣告Namespace,這是為了防止同樣的Class名稱。

2.
在2005的編譯器下:
開啟2003的專案,此時會問要不要轉成2005的專案,當然要轉嚕。
將2003的專案轉成2005的專案。

3.
在2005的編譯器下:例如有一個舊的 Windows Form 檔名叫 Employee.vb,
Form裡面有一個Label的元件,名稱叫Label5。為了示範所以只放一個Label元件。

a.將Employee.vb 改檔名,改成before_Employee.vb
b.加入一個 Windows Form 檔名叫 Employee.vb,這時會產生一個叫Employee_Designer.vb的檔案。
這裡就是放設計物件的程式碼。

從c.開始是重點;
c.開啟 before_Employee.vb 找到以下的文字

‘注意: 以下為 Windows Form 設計工具所需的程序
‘您可以使用 Windows Form 設計工具進行修改。
‘請勿使用程式碼編輯器來修改這些程序。
Friend WithEvents Label5 As System.Windows.Forms.Label

d.將所有開頭是 Friend 的程式碼複製,也就是將
Friend WithEvents Label5 As System.Windows.Forms.Label
這段程式碼複製起來。
當然Form裡面的元件不只有一個,這裡只是一個範例而己。

e.從開啟舊檔將Employee_Designer.vb打開。
直接跳到程式碼的最下面的地方,在End Sub和End Class的中間將複製的程式碼貼上。

f.再開啟 before_Employee.vb 找到以下的文字
Private Sub InitializeComponent()
Me.Label5 = New System.Windows.Forms.Label
‘Label5

Me.Label7.AutoSize = True
Me.Label7.Location = New System.Drawing.Point(360, 75)
Me.Label7.Name = “Label7”
Me.Label7.Size = New System.Drawing.Size(66, 18)
Me.Label7.TabIndex = 21
Me.Label7.Text = “出身年月日”

這裡宣告元件,將宣告的元件的程式複製,也就是將
Me.Label5 = New System.Windows.Forms.Label
‘Label5

Me.Label7.AutoSize = True
Me.Label7.Location = New System.Drawing.Point(360, 75)
Me.Label7.Name = “Label7”
Me.Label7.Size = New System.Drawing.Size(66, 18)
Me.Label7.TabIndex = 21
Me.Label7.Text = “出身年月日”

這段程式碼複製起來。
當然Form裡面的元件不只有一個,這裡只是一個範例而己。
也就是說 Private Sub InitializeComponent() 裡面的所有元件的宣告程式碼都複製。

g.再開啟 Employee_Designer.vb
找到 Private Sub InitializeComponent()
將Private Sub InitializeComponent() 裡面的程式碼”覆蓋”

h.大功告成。

4.打開Employee.vb,就會看到之前before_Employee.vb的宣告的元件了。

後語:
這樣才是真正轉成VS 2005 的專案。自動轉轉得不好,還是要手動貼程式碼。
2005將設計元件的程式碼放在 _Designer.vb,這個點子有Delphi的味道。