利用VB.NET函数获取控件属性

利用VB.NET函数获取控件属性,vb.net,function,combobox,controls,Vb.net,Function,Combobox,Controls,我正在尝试创建一个函数,该函数将为控件(在本例中为combobox)创建一些属性。但是,接收控件不会从函数中获取值属性 下面是创建属性的函数 Public Function getComboboxProperties(ByVal dt As DataTable) As ComboBox Try Dim ctrlCombobox As New ComboBox ctrlCombobox.BindingContext = New BindingContext

我正在尝试创建一个函数,该函数将为控件(在本例中为combobox)创建一些属性。但是,接收控件不会从函数中获取值属性

下面是创建属性的函数

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
新值通过以下方式传递:

cmbCompanyStatus = clsCommon.getComboboxProperties(dtStatus)
当我打开表单时,combobox cmbCompanyStatus不会拾取数据源,并且不显示任何内容


任何帮助都将不胜感激。谢谢你

我认为可能的原因是作业中出现了异常。声明

Return Nothing
MessageBox.Show(ex.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
你走错了路;该函数将返回而不显示消息框

而且

是一种相当老式的返回值的方式;在VB.Net中,人们更愿意

Return ctrlCombobox

从这个角度看,您似乎缺少以下内容:

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

这似乎是一个愚蠢的问题,但cmbCompanyStatus分配到哪里?也许可以编辑该问题,使您所问的稍微清楚一点?
' Snip
    ctrlCombobox.DataSource = dt
    ctrlCombobox.ValueMember = "ID"
    ctrlCombobox.DisplayMember = "DESCRIPTION"
    ctrlCombobox.DataBind() ' <-------------------- This line here
    getComboboxProperties = ctrlCombobox