3 / 2 / 1
Регистрация: 05.02.2019
Сообщений: 27
|
||||||
1 | ||||||
Excel Заполнить несколько ListBox05.02.2019, 14:34. Показов 2936. Ответов 12
Всем добрый день!
При создании UserForm возникла острая необходимость сделать множество ListBox (на данный момент их 15). Заполнить методом additem сложности не возникает, если данный метод применять к каждому ListBox. Все ListBox имеют одинаковый набор данных. Т.е. наполнение идентично. Собственно, вопрос заключается в том, как бы цыклом заполнить их все? Отдельно наполнять каждый - не вариант. Код получится слишком массивным. Пробовал следующий вариант:
0
|
05.02.2019, 14:34 | |
Ответы с готовыми решениями:
12
Как заполнить ListBox Организовать вывод на форму поля со списком (ListBox) и заполнить несколько его строк. Организовать вывод на форму поля со списком (ListBox) и заполнить несколько его строк. Организовать по выбору (отметке) некоторых действий, например д Csv заполнить listbox |
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 526
|
||||||
05.02.2019, 14:47 | 2 | |||||
Этот цикл можете вложить в другой цикл или напротив - в этот цикл вставляете другой цикл( вместо L.AddItem "0" ставляете ваш цикл, который должен наполнить листбокс.) Добавлено через 3 минуты По такому же принципу можно циклом обойти например все текстбоксы. В одной моей программке по таймеру на полсекунды подсвечиваются все текстбоксы, меняя фон на розовый и обратно, если в этом текстовом поле только что изменилось значение.
1
|
3 / 2 / 1
Регистрация: 05.02.2019
Сообщений: 27
|
|
05.02.2019, 14:47 [ТС] | 3 |
Огромное спасибо!
Завелось! Могли бы подсказать в чем была ошибка, очень не хотелось бы допускать ее впредь.
0
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 526
|
|||||||||||
05.02.2019, 15:00 | 4 | ||||||||||
Объявляя Dim lb As ListBox For Each lb In UserForm вы говорите бейсику, что надо пройтись по всем listbox'ам в форме, но для работы такого цикла необходимо, чтобы существовала коллекция листбоксов, либо массив листбоксов! А у вас такой коллекции нет, так как изначально на форме есть просто коллекция контролов, а самостоятельно коллекцию листбоксов вы не создавали. Впредь можно делать так: создаёте коллекцию, наполняете её необходимыми вам листбоксами, в дальнейшем можно организовывать цикл по этой коллекции через For Each. Добавлено через 3 минуты
Вот пример кода, здесь создаётся коллекция, добавляются в неё два листбокса, а потом организовывается цикл, успешно "добирающийся" до каждого контрола коллекции.
0
|
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
||||||
05.02.2019, 15:00 | 5 | |||||
saray, Если имена созданных ListBox не менялись, то заполнить их можно ещё и таким способом :
0
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 526
|
|
05.02.2019, 15:02 | 6 |
Наполнять коллекцию можно также циклом, что всё упрощает (например, можно сделать цикл, который добавит в коллекцию только те листбоксы, имена которых соответствуют какому-то критерию).
А ещё для 15 листбоксов можно организовать одинаковое поведение, но это уже другая широкая тема классов...
0
|
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
||||||
05.02.2019, 15:03 | 7 | |||||
А если использование метода .AddItem необходимо, то :
2
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 526
|
|
05.02.2019, 15:08 | 8 |
pashulka, Так будет сильно быстрее, если речь идёт о тысячах строк!
0
|
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
05.02.2019, 15:22 | 9 |
Святой НякаЛайк, Вы о чём ? Наши сообщения появились одновременно, видел только сообщение#2 и никакого проигрыша по отношению к этому варианту у меня нет.
0
|
3 / 2 / 1
Регистрация: 05.02.2019
Сообщений: 27
|
|
05.02.2019, 15:31 [ТС] | 10 |
Вот спасибо!
Вариант от господина pashulka реально быстрее! Огромное спасибо!!!
0
|
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 526
|
|
05.02.2019, 16:11 | 12 |
Так я именно о выигрыше в вашем варианте! Так как затестив ваш код, обнаружил, что он быстрее наполняет листбокс, чем вариант с наполнением в цикле.
0
|
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
05.02.2019, 16:21 | 13 |
Святой НякаЛайк, Чё то я сомневаюсь, что тысячу строк кто-то будет заполнять с помощью метода additem да и компьютеры сейчас помощнее, чем раньше. Но если мой вариант пригодится, то хорошо, но пусть у людей будет выбор.
0
|
05.02.2019, 16:21 | |
05.02.2019, 16:21 | |
Помогаю со студенческими работами здесь
13
ListBox заполнить картинками Как заполнить ListBox Заполнить ListBox данными из FDQuery Не могу заполнить ListBox из StringList Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|