7 / 7 / 0
Регистрация: 27.01.2014
Сообщений: 28

Обработчик событий для динамически созданного массива контролов

21.07.2014, 09:59. Показов 9927. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Option Explicit
Dim WithEvents Button As CommandButton
 
Private Sub Command1_Click()
    MsgBox "Hi"
End Sub
 
Private Sub Form_Load()
    Set Button = Controls.Add("vb.CommandButton", "Command1")
    Button.Visible = 1
End Sub
Вопрос - почему при нажатии на созданную на форме кнопку не происходит событие Click ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.07.2014, 09:59
Ответы с готовыми решениями:

Создать обработчик события для динамически созданного NumericUpDown
Приветствую. Имеется несколько динамически созданных numericupdown-оф, и пользователю нужно распределить среди них 10 очков. Подскажите...

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

Обработчик событий для динамически связанного запроса в подформе
Добрый день, форумчане! Суть проблемы: Есть главная форма. На ней добавлена область для подчиненной формы. При загрузке формы я...

32
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
21.07.2014, 12:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Антихакер32 Посмотреть сообщение
тоесть определенное имя активного контрола но с цифрой
Так не следует делать, а нужно делать так:
Visual Basic
1
If TypeOf ActiveControl Is CommandButton Then Set btn = ActiveControl
Это позволяет во-первых использовать любые имена контролам, во-вторых намного быстрей (для этого и нужна конструкция TypeOf)
0
21.07.2014, 13:07

Не по теме:

Цитата Сообщение от The trick Посмотреть сообщение
If TypeOf
а в VBA это работает? , хотелось бы там выложить чтото новенькое

0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
21.07.2014, 13:12
Цитата Сообщение от Антихакер32 Посмотреть сообщение
а в VBA это работает? , хотелось бы там выложить чтото новенькое
Это наверное тебе лучше в VBA спросить? Конечно работает, почему бы ему не работать?
0
21.07.2014, 15:05

Не по теме:

Цитата Сообщение от Антихакер32 Посмотреть сообщение
на разбирайся
Та ну нафиг. Мне проще повесится.
Цитата Сообщение от Антихакер32 Посмотреть сообщение
а в VBA это работает? , хотелось бы там выложить чтото новенькое
В этом коде должен быть пример.
У меня сейчас нет прав, чтобы скачать вложение и посмотреть.

0
21.07.2014, 15:21

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
Та ну нафиг. Мне проще повесится.
я выложил рабочий пример, там все что можно было прокоментировать
я прокоментировал, там где можно было вставить коментарий, чтоб не увеличивать
размер кода, кстати а сколько на форуме дополнительных
обсуждений было именно этого калькулятора вы не заметили :)

0
21.07.2014, 15:26

Не по теме:

Цитата Сообщение от Антихакер32 Посмотреть сообщение
кстати а сколько на форуме дополнительных обсуждений было именно этого калькулятора вы не заметили
Зачем ты его сюда тогда перепостил? Какой смысл? Для него создали отдельную тему. Этот код в этой теме вообще не в тему. Что ты хотел этим показать? Я уже дал ссылку на ту тему вначале и там этот метод описывается более понятно и без лишнего кода.

0
21.07.2014, 15:27

Не по теме:

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

0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.07.2014, 15:38

Не по теме:

Антихакер32, я простой пример Trick-а уже полчаса пытаюсь разобрать.
А твой с API-функциями без комментов мне если честно своего времени жалко.



The trick, я попробовал твой код без класса. И да, без фокуса событие контрола не работает, если имеются другие контролы на форме.
______________
Мне он не совсем понравился тем, что если я добавлю другие контролы, то тогда понадобится добиваться переназначать ссылку на активный контрол не только при btn_LostFocus, а и при потере фокуса и со всех остальных видов контролов.

На счет примера в этой теме. Ты создаешь коллекцию классов. За каждым контролом установлено свое событие. Каким образом здесь может иметь место потеря фокуса?
Я также создал несколько других видов контролов. Продемонстрированный тобою класс работает в этих условиях.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
21.07.2014, 15:45
Цитата Сообщение от Dragokas Посмотреть сообщение
The trick, я попробовал твой код без класса. И да, без фокуса событие контрола не работает, если имеются другие контролы на форме.
Да так и будет, но ты можешь добавить еще одну WithEvents переменную того типа контрола, который размещен на форме и в LostFocus'е присваивать уже 2-м переменным в зависимости от типа контрола.
Цитата Сообщение от Dragokas Посмотреть сообщение
За каждым контролом установлено свое событие внутри класса. Каким образом здесь может иметь место потеря фокуса?
Там другой принцип, там не имеет значения фокус - контрол по-любому будет генерировать событие и оно будет обработано. У тебя множество объектов вызывают метод одного конкретного объекта - этим и достигается обработка одной формой множества контролов.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.07.2014, 15:50
Цитата Сообщение от The trick Посмотреть сообщение
Там другой принцип, там не имеет значения фокус - контрол по-любому будет генерировать событие и оно будет обработано. У тебя множество объектов вызывают метод одного конкретного объекта - этим и достигается обработка одной формой множества контролов.
А... вот и я о том, что здесь фокус не будет влиять.
0
21.07.2014, 15:53

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
А твой с API-функциями без комментов
там всеравно ничего из заявленных API использоваться не будет
так-как стоят условия #If Manifest Then 'Часть кода для реализация стиля Windows
так-что это можно удалить если вы не используете стили, все это для красоты

0
7 / 7 / 0
Регистрация: 27.01.2014
Сообщений: 28
21.07.2014, 15:53  [ТС]
Жесть! Хочу литеру по всем этим тонкостям и нюансам а то чем больше вникаешь тем больше лес и в итоге все становится непонятно... Например что есть TypeOf, что есть WithEvents и вообще все...
1
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
21.07.2014, 15:54
Цитата Сообщение от Dragokas Посмотреть сообщение
по заявленным словам
Эти слова относились к этому способу, т.к. ТС выбрал именно его насколько я понял.
В примере с классом фокус не имеет значения
Цитата Сообщение от The trick Посмотреть сообщение
Там другой принцип, там не имеет значения фокус - контрол по-любому будет генерировать событие и оно будет обработано. У тебя множество объектов вызывают метод одного конкретного объекта - этим и достигается обработка одной формой множества контролов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.07.2014, 15:54
Помогаю со студенческими работами здесь

Обработчик событий нескольких контролов?
Вообще-то я программирую на Delphi, а тут понадобилось сделать проект на VBA в Excel и обнаружилось, что я не представляю, как назначить...

Обработчик события динамически созданного контрола
Есть событие контрола panel_MouseMove, panel динамически создан и поэтому при создании он ссылается на это событие. В этом событие можно...

Обработчик нажатия динамически созданного класса
Допустим есть список в котором есть класс one,при нажатии на который в консоль выводится его имя и происходит смена класса на two. В...

Обработчик события для массива динамических контролов
Как создать сразу для всего массива динамически созданных контролов один одинаковый обработчик события? //В цикле picbox.Click += new...

Обработчик событий динамически созданных кнопок
Уважаемые форумчане, помогите студентам! У нас есть функция, которая создает количество кнопок, равное количеству файлов в папке ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Опции темы

Новые блоги и статьи
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru