2016-11-30 48 views
-1

我做了,直到我做了更改,一直致力於精細的用戶控制 - 我改變了它從這個:VB.NET沒有構造發現自定義控件

Public Sub New() 
    InitializeComponent() 
End Sub 

這樣:

Public Sub New(Optional ViewMode As Boolean = False, Optional sMaterial As String = "", Optional sCost As String = "", Optional sQuantity As String = "", Optional bOnOrder As String = "", Optional bDelivered As String = "") 
    InitializeComponent() 
    currMaterial = sMaterial 
    currCost = sCost 
    currQuantity = sQuantity 
    currOnOrder = bOnOrder 
    currDelivered = bDelivered 
    currViewmode = ViewMode 
End Sub 

我需要能夠寫入控件和存儲值,但現在我添加了這個,我得到了「No Constructor Found」錯誤。我究竟做錯了什麼?

+0

我假設任何構建控制結構,需要一個無參數的構造函數。 – TZHX

+0

它似乎是這樣的,因爲當我刪除參數時,它工作正常。但我需要有參數? – SilverShotBee

+1

然後有多個構造函數? – TZHX

回答

2

爲了創建任何類的實例,您需要調用構造函數。在設計器中將控件的實例添加到表單時,無法將參數傳遞給構造函數,因此必須調用無參數的構造函數。你的控件中沒有無參數的構造函數,所以你不能在設計器中添加實例,只能在代碼中添加實例。如果您希望能夠在設計器中添加實例,請恢復無參數構造函數,然後在「屬性」窗口中設置這些值。

如果您希望能夠在代碼中創建實例,則可以保留這兩個構造函數。在你的情況下,你的新構造函數對所有參數都有默認值,所以只需在無參數構造函數中將這些字段/屬性設置爲默認值即可。

相關問題