Vb.net GroupBox中每个控件的数据源

Vb.net GroupBox中每个控件的数据源,vb.net,winforms,controls,Vb.net,Winforms,Controls,这甚至是可能的。我正在粘贴下面的代码,任何人都可以告诉我正确的方法 For Each tbbox As TableLayoutPanel In GroupBox3.Controls 'looping through all controls in my tablelayoutpanle For Each ctl As Control In tbbox.Controls If ctl.Name.StartsWith("cb_barva")

这甚至是可能的。我正在粘贴下面的代码,任何人都可以告诉我正确的方法

 For Each tbbox As TableLayoutPanel In GroupBox3.Controls
'looping through all controls in my tablelayoutpanle
            For Each ctl As Control In tbbox.Controls
                If ctl.Name.StartsWith("cb_barva") Then
'im stuck here...
                    With (ctl)
                        .DataSource = ds_barve.Tables("moje_barve")
                        .DisplayMember = "barva"
                        .ValueMember = "barva"
                        .SelectedIndex = 0
                    End With

                End If
            Next
        Next

您需要进行类型转换

With (ctl)
将ctl转换为组合框

ctype(ctl,ComboBox)
如果您无法使用“with”语句转换控件,请更改代码的每一行,如下所示

        ctype(ctl,ComboBox).DataSource = ds_barve.Tables("moje_barve")
        ctype(ctl,ComboBox).DisplayMember = "barva"
        ctype(ctl,ComboBox).ValueMember = "barva"
        ctype(ctl,ComboBox).SelectedIndex = 0

您需要进行类型转换

With (ctl)
将ctl转换为组合框

ctype(ctl,ComboBox)
如果您无法使用“with”语句转换控件,请更改代码的每一行,如下所示

        ctype(ctl,ComboBox).DataSource = ds_barve.Tables("moje_barve")
        ctype(ctl,ComboBox).DisplayMember = "barva"
        ctype(ctl,ComboBox).ValueMember = "barva"
        ctype(ctl,ComboBox).SelectedIndex = 0

您能更具体地说明您的问题吗?所有控件都是组合框吗?您在表布局中有一组控件,并且希望将相同的数据源绑定到每个控件?最好是使用您需要的设置创建一个自定义控件,并在运行时创建一组这样的设置。问题是,我希望用尽可能少的代码填充表单上的所有组合框。因此,我不必用“with”子句为它们中的每一个提供数据源。我曾尝试将项目绑定到它们,但问题是我有15个组合框,其中有一个绑定源。如果我只改变其中一个的选择,所有的控件都会改变。我的建议是:分别处理每个控件。你能更具体地说明你的问题吗?所有控件都是组合框吗?你在一个表布局中有一组控件,你想将同一个数据源绑定到每个控件吗?最好是使用您需要的设置创建一个自定义控件,并在运行时创建一组这样的设置。问题是,我希望用尽可能少的代码填充表单上的所有组合框。因此,我不必用“with”子句为它们中的每一个提供数据源。我曾尝试将项目绑定到它们,但问题是我有15个组合框,其中有一个绑定源。如果我只改变其中一个的选择,它们都会改变。我的建议是:分别处理每一个。你的意思是:
with(ctl)cttype(ctl,ComboBox)。DataSource=ds_barve.Tables(“moje_barve”).DisplayMember=“barva.ValueMember=“barva”.SelectedIndex=0以
结束,但仍然…我无法使其正常工作…不知道我应该在何处声明转换,您为您的解决方案将我指向.Ty。但我还是有一个问题,如果我改变其中一个的选择,我会在所有的组合框中得到选中的项目。我认为这不应该发生在提到的代码中。哦,我的天啊…………使用不同的数据表作为不同的组合框。。。。。。像dt1=ds_barve.Tables(“moje_barve”).Copy()。因为所有的组合框都指向同一个对象。=)…对于我来说是如此的绿色…我还有很多东西要学。如你所见。但我非常感谢你的帮助。你的意思是:
和(ctl)cttype(ctl,ComboBox)。数据源=ds_barve.Tables(“moje_barve”)。DisplayMember=“barva”。ValueMember=“barva”.SelectedIndex=0以
结束,但仍然…我无法使其正常工作…不知道我应该在何处声明转换,您为您的解决方案将我指向.Ty。但我还是有一个问题,如果我改变其中一个的选择,我会在所有的组合框中得到选中的项目。我认为这不应该发生在提到的代码中。哦,我的天啊…………使用不同的数据表作为不同的组合框。。。。。。像dt1=ds_barve.Tables(“moje_barve”).Copy()。因为所有的组合框都指向同一个对象。=)…对于我来说是如此的绿色…我还有很多东西要学。如你所见。但我非常感谢你的帮助。又一次。