2014-10-10 37 views
0

我正在嘗試創建一個函數,該函數將爲控件(在本例中爲組合框)創建一些屬性。但是,接收控件不會從函數獲取值屬性。通過函數獲取控件屬性VB.NET

這裏是創建屬性的函數。

cmbCompanyStatus = clsCommon.getComboboxProperties(dtStatus) 

當我打開窗體,組合框cmbCompanyStatus不拿起數據源,並顯示無:

Public Function getComboboxProperties(ByVal dt As DataTable) As 
ComboBox 
    Try 
     Dim ctrlCombobox As New ComboBox 
     ctrlCombobox.BindingContext = New BindingContext 
     ctrlCombobox.DataSource = dt 
     ctrlCombobox.ValueMember = "ID" 
     ctrlCombobox.DisplayMember = "DESCRIPTION" 
     getComboboxProperties = ctrlCombobox 
    Catch ex As Exception 
     Return Nothing 
     MessageBox.Show(ex.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try End Function 

新的值是由傳遞。

任何幫助將不勝感激。謝謝!。

+0

似乎是一個愚蠢的問題,但*其中*'cmbCompanyStatus'分配? – Psychemaster 2014-10-10 09:55:26

+0

也許編輯這個問題讓你的問題更清晰些? – Yann 2014-10-10 09:58:28

回答

0

我會建議可能的原因是在您的任務中某處引發異常。陳述

Return Nothing 
MessageBox.Show(ex.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Error) 

是錯誤的方式;該函數將返回而不顯示消息框。

此外,

getComboboxProperties = ctrlCombobox 

是返回一個值的一個相當老式的方法;在VB.Net一個寧願

Return ctrlCombobox 
0

看着這個,你似乎缺少以下:

' Snip 
    ctrlCombobox.DataSource = dt 
    ctrlCombobox.ValueMember = "ID" 
    ctrlCombobox.DisplayMember = "DESCRIPTION" 
    ctrlCombobox.DataBind() ' <-------------------- This line here 
    getComboboxProperties = ctrlCombobox