Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2012, 23:37   #1
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию Программно добавить на форму компоненту.

Доброго времени суток!
Подскажите, пожалуйста, как программно добавить компоненту на форму UserForm1 при выборе определенного значения из ComboBox1 ?
то есть, например:

Код:
Private Sub ComboBox1_Change()
If ComboBox1.Text = "Дата" Then
TextBox1.Text = "01.01.2012"
End If
End Sub
Вопрос в том, как добавить TextBox1 до того, как в него будут внесены данные? Я имею в виду ситуацию.когда при выборе значения "Дата" в Комбобоксе , программно на форму добавляется компонента TextBox1 и в неё, предположим, тут же заносится значение "01.01.2012".

Спасибо!
Randy.Mandy вне форума Ответить с цитированием
Старый 03.03.2012, 01:07   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Private Sub Create_TextBox()
    Set ITextBox = Me.Controls.Add( _
    "Forms.TextBox.1", "TextBox1", True)
    With ITextBox
         .MaxLength = 5
         .BackColor = vbYellow
         .ForeColor = vbRed
         .Width = 200
         .Height = 30
         .Text = "Вера не позволяет в поиск по форуму забить слово Controls.Add  ?"
         .WordWrap = True
         .TextAlign = fmTextAlignCenter
         .MultiLine = True
         .Left = 40
         .Top = 40
         .Font.Bold = True
    End With
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 03.03.2012, 22:02   #3
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию

doober, Спасибо =D
.Text = "Вера не позволяет в поиск по форуму забить слово Controls.Add ?"
Простите, а если эту компоненту необходимо расположить на MultiPage1, на Page1, то как указать,что это должно быть на Мультипэйдже?

Так пробовал,-не получилось.
Код:
Set ITextBox = Me.Controls.Add("MultiPage1.Page1.TextBox.1", "TextBox1", True)
Randy.Mandy вне форума Ответить с цитированием
Старый 03.03.2012, 22:33   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а так:
me.multipage1.pages(0).Controls.Add (....
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.03.2012, 00:14   #5
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию

Так точно !!))
Работает!
Спасибо, прошу прощения за то,что сразу не написал,что надо было на мультипейдж кинуть компоненту!)
Randy.Mandy вне форума Ответить с цитированием
Старый 04.03.2012, 00:14   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Вера не позволяет в поиск по форуму забить слово Controls.Add
видимо не позволяет
Вот и ответ на ваш вопрос
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 06.03.2012, 20:39   #7
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию

ой, извините,по ходу работы над программой, у меня еще один вопрос возник
Как проверить наличие компоненты, например, с именем TextBox4 на форме?
*и для индикации, если есть эта компонента, спрятать ее:

Цитата:
Set_windows.TextBox4.Visible = False
Randy.Mandy вне форума Ответить с цитированием
Старый 06.03.2012, 20:47   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Не сторонник я динамических контролов.
Зачем его создавать,а потом прятать.не проще его кинуть на форму,потом играться с видимостью

Можно в лоб без перебора
Код:
 On error resume next
Set_windows.TextBox4.Visible = False
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 06.03.2012, 20:55   #9
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию

согласен с Вами,но дело в том,что тут роль играет ЧекБокс.
Если пользватель выбирает одно значение в чекбоксе,то добавляется одна компонента, если другое-то две компоненты: одна на место той,которая былап добавлена до этого в то же место, другая-, несколько ниже. И если пользователь несколько раз переключает чек бокс, то нужно затереть ту компоненту ,что была ниже. Вот в чем дело. Ибо если она не была добавлена, дебаг сообщит о том,что такая компонента попросту не существует ))
Randy.Mandy вне форума Ответить с цитированием
Старый 06.03.2012, 21:07   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Попробуйте понажимать на Чекс
Вложения
Тип файла: zip 00.zip (68.1 Кб, 17 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программно добавить на форму компоненту. Randy.Mandy Microsoft Office Word 0 02.03.2012 23:32
как добавить строку программно? KNIGHT-SP Помощь студентам 0 15.08.2011 00:26
Программно добавить подменю Rolls Общие вопросы Delphi 2 04.06.2010 11:34
Программно перетащить файл на форму FelixKoT Общие вопросы Delphi 2 13.02.2010 20:58
нажать на форму программно по координатам Kukkk Общие вопросы Delphi 4 20.01.2010 23:46