|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.01.2012, 17:20 | #1 |
Новичок
Джуниор
Регистрация: 11.01.2012
Сообщений: 7
|
Создание элементов UserForms в RunTime
Пытаюсь динамически создать CommandButton в UserForm. Событие Click для кнопки уже прописано, но после добавления - не работает. Что делать? И почему не работает? Пробовал в 2003, 2007.
Примечание: Для пробы создайте в проекте пользовательскую форму и поместите туда код. PHP код:
Последний раз редактировалось vinvin; 11.01.2012 в 17:22. Причина: Изменил заголовок |
11.01.2012, 17:47 | #2 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Поиск по "модуль класса", например http://www.programmersforum.ru/showt...872#post279872
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
12.01.2012, 15:32 | #3 |
Форумчанин
Регистрация: 30.01.2008
Сообщений: 314
|
а почему сразу не создать, а потом менять видимость и местоположение?
|
13.01.2012, 14:08 | #4 |
Новичок
Джуниор
Регистрация: 11.01.2012
Сообщений: 7
|
Согласен, видимость лучше делать после всех установок, касающихся отображения.
Вопрос я решил. Короче, в режиме Runtime добавлять контролы можно, но вот события к ним привязать динамически нельзя! Выход только один: использовать режим Design. А именно - создавать форму, добавлять к ней контролы, добавлять в код формы события, а потом уже запускать форму. При этом в настройках Excel должен быть разрешен доступ к коду. Для экономии времени форму можно не создавать с нуля: создавать в Дизайнере, запихивать в нее код и контролы по максимуму (все, что не требует динамики), а затем экспортировать ее в проект и "измываться" над ней далее - добавляя, так же в режиме Дизайнера , контролы и код событий. Выглядит это примерно так: PHP код:
PHP код:
|
13.01.2012, 14:32 | #5 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Это вырезание гландов через ж... в чистом виде
Почитайте про модуль класса.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
13.01.2012, 14:50 | #6 |
Новичок
Джуниор
Регистрация: 11.01.2012
Сообщений: 7
|
Вот весь код - может кому-нибудь пригодиться:
PHP код:
|
13.01.2012, 14:55 | #7 |
Новичок
Джуниор
Регистрация: 11.01.2012
Сообщений: 7
|
Спасибо за подсказку - почитаю. Хотя классы использовал, но как сюда привязать не знаю. Если подскажите что-то конкретнее буду очень признателен.
|
13.01.2012, 15:46 | #8 |
Новичок
Джуниор
Регистрация: 11.01.2012
Сообщений: 7
|
Да, забыл сказать. А то с первого взгляда действительно кажется через ж...
Дело в том, что форма сложная. На нее добавляются контролы, к которым нужно привязывать события. А это можно сделать ИМХО только через Дизайнер. Модуль класса не работает с таким кодом как, например: Public WithEvents Chk As CheckBox Так автоматизация событий в CheckBox не предусмотрена. А мне нужно привязать код к CheckBox. ComboBox, не требуют от меня событий, но они тоже создаются автоматически. Их можно создать динамически при инициализации формы. Но получается, что часть элементов я в программе буду создавать через дизайнер, часть в RunTime. Вот это и будет бардак. Так что лучше через ж... , но единообразно. Последний раз редактировалось vinvin; 13.01.2012 в 15:47. Причина: некорректное слово |
14.01.2012, 00:45 | #9 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Модуль класса не работает с таким кодом как, например:
Public WithEvents Chk As CheckBox Однако, смотрите Нажимайте кнопку и кликайте чекбоксы.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
14.01.2012, 00:51 | #10 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Можно даже обойтись без переменных кроме коллекции. Модуль формы:
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Runtime Error | ultrasfan | Общие вопросы C/C++ | 3 | 12.10.2010 16:16 |
Runtime Error | RoS | Qt и кроссплатформенное программирование С/С++ | 7 | 06.09.2010 16:44 |
В массиве из п элементов много совпадающих элементов. Найти количество различных элементов | Strax | Фриланс | 11 | 12.06.2010 20:13 |
Runtime runtime = Runtime.getRuntime(); | Pti44ka | Общие вопросы по Java, Java SE, Kotlin | 1 | 22.11.2009 10:45 |
RunTime Error713 (VB) | vio | Помощь студентам | 2 | 12.12.2008 20:45 |