组合框可以在其文本框部分显示多于一列吗?
Posted
技术标签:
【中文标题】组合框可以在其文本框部分显示多于一列吗?【英文标题】:Can a combobox present more then one column on its textbox part? 【发布时间】:2011-07-29 00:45:08 【问题描述】:我的组合框中有一个两列列表,当我使用下拉列表选择其中一个项目时,它只存储(我在组合框的文本框部分看到的)我选择的值(无论是根据boundcolumn在右列或左列)
我的问题是:有没有办法在组合框的文本框部分存储(或呈现——这是我的目标),选择一行的两列?
例如:[column1] 丹尼尔 [column2] 史密斯。在我想要的文本框中:丹尼尔史密斯(不仅仅是丹尼尔,或者他们自己的史密斯)
【问题讨论】:
是的,有办法存储它。请记住,您的程序必须知道如何再次拆分 2 列(如果您想识别数据集)。为更改的索引添加一个 EventHandler 并在您的文本字段中加载第二列。 【参考方案1】:您所描述的在理论上是可能的,但有限制。
即使你没有要求,我的想法来了:
如here 所述,您可以更改组合框的text
,而无需更改其value
。这允许您在将两列合二为一的同时“存储”基础值。
监听SelectedIndexChanged Event
并更改text
属性如下:
Sub ComboBox1_SelectedIndexChanged()
ComboBox1.Text = ComboBox1.Column(0) & "-" & ComboBox1.Column(1)
End Sub
(这只是一个基本示例。)现在无法对其进行测试,但在 .Net 中,您可以使用 CType
将 sender
参数显式转换为 ComboBox 变量并以这种方式访问它.
Boundcolumn
属性不能更改为多个值。您可以尝试在文本字段中使用VbTab
作为分隔符,但我不确定它会如何显示。
编辑:
不要忘记默认值。我认为您的文本字段也应该在用户第一次点击列表之前显示两列。
【讨论】:
【参考方案2】:您可以将组合框文本字段设置为使用来自多列的数据,但您可能需要编写一些代码来执行此操作。
试试http://www.contextures.com/Excel-VBA-ComboBox-Lists.html
【讨论】:
我不是这个意思。我的意思是在单击之前简单地显示组合框文本区域中的两列。我不想看到组合框的 texbox 区域中的两列,而不仅仅是下拉区域。你知道我的意思? - 只是在文本框区域中显示活动项目的两列。以上是关于组合框可以在其文本框部分显示多于一列吗?的主要内容,如果未能解决你的问题,请参考以下文章
组合框多选以在 Access 2016 中的文本框中显示所选项目