Может ли комбинированный список представить более одного столбца в своей части текстового поля? - PullRequest
2 голосов
/ 29 июля 2011

В моем комбинированном списке есть список из двух столбцов, и когда я выбираю один из элементов в нем с помощью раскрывающегося списка, он сохраняет (то, что я вижу в текстовом поле комбинированного списка) только выбранное значение (если этотот, что в правом или левом столбце в соответствии с границей столбца)

Мой вопрос: есть ли способ сохранить (или представить - это моя цель) в текстовой части поля со списком, оба столбцавыбрана одна строка?

Например: [column1] Даниэль [column2] Смит.И в текстовом поле я хочу: Даниэль Смит (а не только Даниэль или Смит сами по себе)

Ответы [ 2 ]

0 голосов
/ 06 мая 2016

То, что вы описываете, теоретически возможно, но с ограничениями.

Даже когда вы не просили об этом, вот и приходит моя идея :

Как описано здесь вы можете изменить text вашего ComboBox без изменения value. Это позволяет вам «хранить» базовое значение, отображая оба столбца в одном.

Прослушайте SelectedIndexChanged Event и измените свойство text следующим образом:

Sub ComboBox1_SelectedIndexChanged()
    ComboBox1.Text = ComboBox1.Column(0) & "-" & ComboBox1.Column(1)
End Sub

(Это только базовый пример.) Не могу сейчас его протестировать, но в .Net вы можете использовать CType, чтобы явно преобразовать аргумент sender в переменную ComboBox и получить к нему доступ таким образом .

Свойство Boundcolumn нельзя изменить на несколько значений. Вы можете попробовать использовать VbTab в качестве разделителя в текстовом поле, но я не уверен, как это будет выглядеть.

Edit:

Не забудьте значения по умолчанию. Я думаю, что ваше текстовое поле должно показывать оба столбца до , когда пользователь тоже щелкнул по списку в первый раз.

0 голосов
/ 19 августа 2011

Вы можете настроить поле со списком для использования данных из нескольких столбцов, но вам может потребоваться написать код для этого.

Попробуйте http://www.contextures.com/Excel-VBA-ComboBox-Lists.html

...