2012-01-07 152 views
1

我是vb.net編程的初學者,我對創建控件略有困惑。看來,當我在線上下面的代碼我看到的是交替使用:vb.net以編程方式創建控件

Dim x As Button 
Dim y As New Button() 

甚至

Dim z As New System.Windows.Forms.Button() 

它無論我怎樣聲明變量?提前致謝。

回答

1

System.windows.forms.Button與聲明Button相同。您只需導入System.windows.forms命名空間。這是除非你已經在不同的命名空間中創建自己的按鈕類,但我懷疑你有。

類名稱後面的括號將創建該類的未定義大小的數組。沒有括號正在創建該類的一個實例。

創建控件的新實例時需要使用new關鍵字。沒有它,您創建的變量將需要分配給相同類型的現有對象。鑑於您希望以編程方式創建按鈕,您應該使用new關鍵字。

看一看這些教程的基本介紹創建類 http://www.homeandlearn.co.uk/net/nets11p2.html http://visualbasic.about.com/od/quicktips/qt/shared_member.htm

+0

除了括號外,我得到了一切。當你說「它創建了一個未定義的大小的數組」時,你是什麼意思?請把它放下來好嗎? :P後 – 12japerk 2012-01-07 03:21:17

+1

括號中的類的名稱沒有創建的陣列。當您使用New關鍵字時,您正在初始化該控件的新實例。這將調用該控件的默認構造函數,該構造函數被定義爲Public Sub New()。控件名稱後面的括號用於將任何參數傳遞給構造函數。由於該按鈕沒有任何參數被傳入,因此只剩下括號。 – briddums 2012-01-07 03:25:52

+0

謝謝,你的回答是非常有益的 – 12japerk 2012-01-07 03:30:08

1

這聲明瞭一個名爲x的Button類型的變量。你不能使用它,直到你指定它。

Dim x As Button 

這個實例化一個按鈕並將它分配給y。給人yoiu可用按鈕「被稱爲」 Y

Dim y As New Button() 

甚至

這是X相同,但採用的是完全合格的名稱,例如對來自Jacob.Perkins.Button區別,如果你已經發明瞭你自己的。

Dim z As New System.Windows.Forms.Button() 

所以是的,它確實很重要。

何時使用new,wehn需要創建(實例化)一個。

在.NET

Dim x as Button 
// followed by 
x = new Button() 
// is the same as 
Dim x as new Button() 

昏暗x作爲按鈕所聲明的變量名爲x是預期的「點到」按鈕的實例。

如果你說x = 36,你會得到一個編譯器錯誤,因爲36不是按鈕,它是一個數字。如果你說x = Button1和Button1存在於你的表單上,那麼這就好了,當然它也是一個按鈕。

在某一點的唯一途徑「理解」這個東西它開始嘗試它..沒有什麼可怕的會發生,保持簡單,當你閱讀的錯誤消息,您犯任何錯誤都會變得明顯。

+0

我仍然感到困惑。你什麼時候使用「新」和「()」,你什麼時候不想使用它們。 – 12japerk 2012-01-07 02:37:54