如何通过代码填充多列组合框?

Posted

技术标签:

【中文标题】如何通过代码填充多列组合框?【英文标题】:How to Populate a Multi-column Combobox via code? 【发布时间】:2015-07-06 16:13:27 【问题描述】:

在我的访问表单上,我有一个空的组合框,其中 Row Source Type 设置为 Table/Query,绑定列设置为 1

我想要做的是通过代码,用两列填充这个组合框,它向用户显示第一列,然后在代码中我将从第二列中获取值。

我的问题是,如何填充列?如果Row/Source 设置为Value List,我知道如何填充组合框——但这只是一个平面列表;我这里要两列。

我不能为列数据使用单独的查询/表,因为我是动态生成的。基本上,我用编辑字段控件名称及其标题列表填充组合框。用户从组合框中选择标题名称,然后我可以获取控件名称。

我只需要知道如何将数据添加到组合框中的列。

所以,我想像这样(我知道这是不正确的,但你可以看到我想要完成的事情):

Me.mycombobox.AddItem("column 1 data";"column2 data")

【问题讨论】:

【参考方案1】:

如果您将其添加到您的事件中,这将触发组合框被填充,它应该可以阐明您的问题:

Me.Combo0.RowSource = "Row1Column1;Row1Column2;Row2Column1;Row2Column2"

确保在本示例中您的 Column Count 设置为 2。基本上,您只需构建一个格式类似于示例中的字符串,其中填充了您想要填充到组合框中的内容。然后只需将其分配给您的组合框的RowSource

基本上当您输入 6 个项目作为 RowSource 时:

Item1, Item2, Item3, Item4, Item5, Item6

它会根据你设置的Column Count而改变,例如如果列数设置为3,上面的列表将变成:

Item1 Item2 Item3 
Item4 Item5 Item6

如果列数设置为 2 则变为:

Item1 Item2 
Item3 Item4
Item5 Item6

注意:确保将Row Source Type 设置为“值列表”。

【讨论】:

我就是这样做的——但这会创建一个单列表,而不是多列表。 确保你设置了Column Count,如果你没有,那么你只会得到一列。还要检查Column Widths 属性,如果它设置为2cm;0cm 之类的东西,那么即使第二列在技术上仍然存在,您也只会看到第一列。 在我给您的示例中,它将显示 2 行 2 列。我将编辑我的答案以提供其工作原理的可视化。 所以它会自动为我们划分。好的,这有效!谢谢! @BGM 没问题,这是一个有趣的问题!

以上是关于如何通过代码填充多列组合框?的主要内容,如果未能解决你的问题,请参考以下文章

C#:用 CSV 中的单列填充组合框

如何从同一表单中的另一个组合框填充组合框?

在 VBA 访问中为多列组合框赋值

使用查找组合框 c# 绑定 Datagridview 多列排序

选择项目后将多列组合框的值设置为所有列?

Excel VBA文本框以填充组合框