我得老實講, 這個改法在 Visual Basic 是還滿麻煩的, 因為你要改兩個檔. 以下為步驟 (請先點選方案總管上方的 "顯示所有檔案"
(1) 假設你專案中已經存在一個 Form1
(2) 在方案總管中為這個專案加一個新的目錄 Test
(3) 在方案總管中選 Test 目錄, 按滑鼠右鍵 --> 加入 --> Windows Form
(4) 然後你會發現要用 "Form1" 這名字是不可能的, 所以我們改成 Form1_1
(5) 在方案總管中把它展開 (如圖)
(6) 點開 Form1_1.Designer.vb, 你會看到以下程式碼
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _Partial Class Form1_1 Inherits System.Windows.Forms.Form 'Form 覆寫 Dispose 以清除元件清單。
<System.Diagnostics.DebuggerNonUserCode()> _ Protected
Overrides
Sub Dispose(ByVal disposing As
Boolean)
Try
If disposing AndAlso components IsNot Nothing
Then components.Dispose()
End
If
Finally
MyBase.Dispose(disposing)
End
Try
End
Sub
'為 Windows Form 設計工具的必要項
Private components As System.ComponentModel.IContainer '注意: 以下為 Windows Form 設計工具所需的程序
'可以使用 Windows Form 設計工具進行修改。
'請不要使用程式碼編輯器進行修改。
<System.Diagnostics.DebuggerStepThrough()> _ Private
Sub InitializeComponent() components =
New System.ComponentModel.Container Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.Text =
"Form1_1"
End
Sub
End
Class為這程式碼加上自訂的命名空間 Test
Namespace test ''開頭
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class Form1_1 Inherits System.Windows.Forms.Form 'Form 覆寫 Dispose 以清除元件清單。
<System.Diagnostics.DebuggerNonUserCode()> _ Protected
Overrides
Sub Dispose(ByVal disposing As
Boolean)
Try
If disposing AndAlso components IsNot Nothing
Then components.Dispose()
End
If
Finally
MyBase.Dispose(disposing)
End
Try
End
Sub
'為 Windows Form 設計工具的必要項
Private components As System.ComponentModel.IContainer '注意: 以下為 Windows Form 設計工具所需的程序
'可以使用 Windows Form 設計工具進行修改。
'請不要使用程式碼編輯器進行修改。
<System.Diagnostics.DebuggerStepThrough()> _ Private
Sub InitializeComponent() components =
New System.ComponentModel.Container Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.Text =
"Form1_1"
End
Sub
End
Class
End
Namespace
''結尾
(7) 打開 Form1_1.vb 程式碼
Public
Class Form1_1End
Class一樣為它加入自訂的命名空間
Namespace test ''開頭
Public
Class Form1_1 End
Class
End
Namespace
''結尾
(8) 回到方案管理員將檔名從 Form1_1 改為 Form1
(9) 再回到剛剛那兩個程式碼
將 Class Form1_1 改為 Class Form1
(10) 所以你在其它地方就得這樣宣告, 表示為 test 命名空間中的 Form1 類別
Private
Sub Button5_Click(sender As System.Object, e As System.EventArgs)
Handles Button5.Click Dim popForm As
New test.Form1 popForm.Show()
End
Sub
(其它)
(1) 看文章要花時間想像, 我們可以把 name space 和 class 的關係用 "中正路" 來解釋, 台灣到處都有中正路 (比喻為類別) , 所以當你在板橋 (板橋此時被比喻為命名空間) 的時候, 你問人說:『中正路怎麼走?』, 依據預設命名空間為板橋的原則 (因為你正在板橋), 所以路人會報你怎麼到板橋區中正路. 那如果你在板橋要去中和中正路, 你一定會問:『中和的中正路怎麼走?』(你指名要中和這個命名空間的中正路這個類別) , 這就是不同命名空間的比喻.
(2) 發問沒啥好壓力不壓力的, 只要你問的是有條理的, 讓人覺得你有努力過的, 只是少了這麼一點訣竅, 大家都會願意幫助你的.
(3) 關於 Designer.vb 是怎麼回事, 你可以參考以下文章 Windows Form Designer