组合框可以在其文本框部分显示多于一列吗?

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 中,您可以使用 CTypesender 参数显式转换为 ComboBox 变量并以这种方式访问​​它.

Boundcolumn 属性不能更改为多个值。您可以尝试在文本字段中使用VbTab 作为分隔符,但我不确定它会如何显示。

编辑:

不要忘记默认值。我认为您的文本字段也应该在用户第一次点击列表之前显示两列。

【讨论】:

【参考方案2】:

您可以将组合框文本字段设置为使用来自多列的数据,但您可能需要编写一些代码来执行此操作。

试试http://www.contextures.com/Excel-VBA-ComboBox-Lists.html

【讨论】:

我不是这个意思。我的意思是在单击之前简单地显示组合框文本区域中的两列。我不想看到组合框的 texbox 区域中的两列,而不仅仅是下拉区域。你知道我的意思? - 只是在文本框区域中显示活动项目的两列。

以上是关于组合框可以在其文本框部分显示多于一列吗?的主要内容,如果未能解决你的问题,请参考以下文章

未绑定组合框:所选文本未显示

使用按钮从组合框中将值传递给文本框单击 MS ACCESS

列表控件中的 MFC 对话框组合框

组合框多选以在 Access 2016 中的文本框中显示所选项目

在MFC中:静态文本类;按纽类;编辑框类;滚动条类;列表框类;组合框类等所对应的类名以及其功能

如何在文本框或组合框中显示多个值