Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как создать дубликат Control в UserForm через VBA ?
 
Приветствую, уважаемые!

Подскажите, пожалуйста, каким образом возможно продублировать какой-либо Сontrol в Userform, СОХРАНИВ при этом полностью все параметры исходного Control'a (Name и Caption, высота, ширина, местоположение - изменятся)

Хорошего настроения каждому, кто уделил внимание! Спасибо!
Изменено: falmrom - 18 Июн 2019 15:32:05
Улыбнись.
 
Выделить оригинал, нажать Ctrl и переместить в нужную позицию. Можно выделить сразу несколько.
 
Юрий М, это понятно. =)
А как реализовать такое кодом?
Улыбнись.
 
Считать все параметры этого контрола, добавить новый, и задать ему считанные параметры.
 
Не пробовал кодом, да и зачем? Ведь создание - это разовая операция.
 
RAN, как считать АБСОЛЮТНО ВСЕ параметры ?

В голову приходит только

Код
УдалитьОснование.Controls("TextBox1").Copy
УдалитьОснование.Controls.Paste ("TextBox2")

Но синтаксис так себе, из-за чего err...
Улыбнись.
 
falmrom, может лучше вручную накидать на форму нужных контролов, настроить их свойства, и сделать невидимыми, а при необходимости показывать/скрывать?
Согласие есть продукт при полном непротивлении сторон.
 
Юрий М, создаю в UserForm столько frame с прочими control'ами, сколько таблиц в книге соответствуют заданным условиям.


Sanja, гениально! Да! Спасибо!
Можно будет ведь накидать, например, штук 5, а сам UserForm сузить до размера, что отображаться будет минимум только 1 control , а далее, в зависимости от того, сколько необходимо будет отобразить control - расширять границы UserForm ?

Задача решена не тем образом, что ожидалась, но решена!
РЕШЕНИЕ: " вручную накидать на форму нужных контролов, настроить их свойства, и сделать невидимыми, а при необходимости показывать/скрывать "
Изменено: falmrom - 18 Июн 2019 15:46:35
Улыбнись.
 
Цитата
falmrom написал:
как считать АБСОЛЮТНО ВСЕ параметры ?
по одному
только вот имя сберечь не получиться - не могут в форме жить два контрола с одинаковыми именами
как не могут жить в одной папке два файла с одинаковыми именами
как Excel не может открыть две книги с одинаковыми именами
и пр. аналогии

со старта идея провальная. контрол лучше создать и скрыть до поры до времени, а потом уже ПРОГРАММНО сделать видимым и доступным когда стало необходимо
Изменено: Ігор Гончаренко - 18 Июн 2019 15:48:03
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ещё вариант: использовать MultiPage. Временно ненужные скрывать.
 
если подвести итог теме;
Цитата
falmrom написал:
Как создать дубликат Control в UserForm через VBA ?
то лучший ответ такой: НИКАК (создайте руками)
 
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Доброе время суток
Цитата
Ігор Гончаренко написал:
не могут в форме жить два контрола с одинаковыми именами
Игорь, это точно? А если так?
Код
Private Sub UserForm_Click()
    Dim pControl1 As MSForms.Control
    Dim pControl2 As MSForms.Control
    Set pControl1 = Me.Controls.Add("Forms.TextBox.1", "myTextBox", True)
    Set pControl2 = Me.Controls.Add("Forms.TextBox.1", "myTextBox", True)
    pControl1.Top = 0
    pControl2.Top = 30
    pControl1.Text = pControl1.Name
    pControl2.Text = pControl2.Name
End Sub
 
нет, Андрей, не точно
(метод аналогии не проверенный практикой дал сбой: типа в WorkSheets, Workbooks - двух одинаковых имен не запихнуть, но это не отвернет меня от использования метода аналогий, от единичного к общему, как одного из основополагающих в философии методов познаний)
оказалось очень даже могут жить, только второй из них не отзывается на обращение по имени
Изменено: Ігор Гончаренко - 18 Июн 2019 20:37:36
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко: это не отвернет меня от использования метода аналогий, от единичного к общему, как одного из основополагающих в философии методов познаний
:D  :idea:
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Цитата
Ігор Гончаренко написал:
но это не отвернет меня от использования метода аналогий, от единичного к общему, как одного из основополагающих в философии методов познаний)
Игорь, с этим не поспоришь. Порядок прежде всего!
Привёт пример всего-лишь для того, чтобы показать что всё это ООП - абстракция. Большинство ограничений на уровне договорённостей. В IDE построения форм код IDE следит, чтобы не было повторяющихся имён, но вот в Runtime контроль такой договорённости просто не предусмотрели или посчитали не нужным.
Страницы: 1
Читают тему (гостей: 1)
Наверх