Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Как создать элемента на форме VB 6.0 динимически Добавлено: 15.06.07 11:05  

Автор вопроса:  valera
Не смог создать программно элемент на форме VB 6.0.
Кажется все перепробовал. Неужели действительно нельзя?

Могу предложить взамен программный способ создания элемента на форме VBA Excel.

Ответить

  Ответы Всего ответов: 22  

Номер ответа: 1
Автор ответа:
 SAVok



ICQ: 155153916 

Вопросов: 2
Ответов: 126
 Профиль | | #1 Добавлено: 15.06.07 11:59
А как пробовал?Вроде все должно создаваться как по букварю.
Пишите код.

Ответить

Номер ответа: 2
Автор ответа:
 Yanex



ICQ: 387761649 

Вопросов: 32
Ответов: 169
 Web-сайт: Progr.Do.am
 Профиль | | #2
Добавлено: 15.06.07 12:48
На примере кнопки.

1. Создайте кнопку с именем cmdE. Присвойте значение Index=1.

2. Когда нужно добавить новую кнопку, используйте следующий код:

Dim NewIndex As Integer
NewIndex = cmdE.UBound + 1
Load cmdE(NewIndex)
cmdE(NewIndex).Visible = True


Примерно такой код. Если закралась какая ошибка, исправьте. Пишу без VB.

Вот. И свежесозданный контрол cmd(NewIndex) готов к использованию. Что может быть проще? :)

Ответить

Номер ответа: 3
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #3
Добавлено: 15.06.07 13:24
Или через API CreateWindow/CreateWindowEx для стандартных контролов

Ответить

Номер ответа: 4
Автор ответа:
 valera



Вопросов: 1
Ответов: 9
 Профиль | | #4 Добавлено: 15.06.07 15:01
Спасибо за код! Он действительно работает,
если на форме создан первый элемент массива "контрол".
Однако, вопрос все же остается открытым - как создать первый элемент "контрол" на форме программно?

Ответить

Номер ответа: 5
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #5 Добавлено: 15.06.07 15:08
Поищи, совсем недавно наткнулся на код на этом форуме. Врать не буду, но интересовался вроде бы Kreator

Ответить

Номер ответа: 6
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #6
Добавлено: 15.06.07 15:42
Если контрол стандартный, то вызываешь CreateWindow или CreateWindowEx. Этими функциями можно создать и основное окно ("форму" VB) и любые стандартные контролы в любом количестве - от одного до .. до максимального числа HWND в системе. Кажется до 65536 штук, включая уже созданные системой и другими программами, но это ещё может зависеть от версии винды. За примерами - в API Guide!

Ответить

Номер ответа: 7
Автор ответа:
 Nash Bridges



Вопросов: 5
Ответов: 139
 Профиль | | #7 Добавлено: 15.06.07 15:44
и создавали они контроли динимически, и продолжалось так без малости 10 зим и 10 лет, и невдомек им было обращать взоры свои на поиск в летописях.

Ответить

Номер ответа: 8
Автор ответа:
 valera



Вопросов: 1
Ответов: 9
 Профиль | | #8 Добавлено: 15.06.07 15:48
Неужели нет более простого способа создания
элемента на форме, не прибегая к API?

Ответить

Номер ответа: 9
Автор ответа:
 valera



Вопросов: 1
Ответов: 9
 Профиль | | #9 Добавлено: 15.06.07 16:00
Будьте так любезны, не сочтите за труд, дайте ссылку на летопись!

Ответить

Номер ответа: 10
Автор ответа:
 Nash Bridges



Вопросов: 5
Ответов: 139
 Профиль | | #10 Добавлено: 15.06.07 16:05
Летопись русьнета ya.ru
Летопись нета google.com
местная летопись - внизу пейджа

Ответить

Номер ответа: 11
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #11 Добавлено: 15.06.07 16:11
Дожили. Уже кнопку на форму не можем положить.
И какие ещё CreateWindow для VB-контролов!?

Можно вот так.
Dim cb As CommandButton
Set cb = Controls.Add("VB.CommandButton", "NameOfObject", Form1)
cb.Visible = True

Или через VBControlExtender.

Ответить

Номер ответа: 12
Автор ответа:
 valera



Вопросов: 1
Ответов: 9
 Профиль | | #12 Добавлено: 15.06.07 16:19
Спасибо за альтернативный выбор направления.

Ответить

Номер ответа: 13
Автор ответа:
 valera



Вопросов: 1
Ответов: 9
 Профиль | | #13 Добавлено: 15.06.07 16:29
Большое Спасибо за код!
Класс Controls в окне Object Browser не виден,
также и класс Control не содержит методов и свойств.
Однако, все работает!
Еще раз всех благодарю !!!

Ответить

Номер ответа: 14
Автор ответа:
 valera



Вопросов: 1
Ответов: 9
 Профиль | | #14 Добавлено: 15.06.07 16:43
Да, чуть не забыл о своем обещании.
Высылаю код динамического создания элементов на форме VBA:
Private Sub UserForm_Activate()
Me.Controls.Clear
Me.Controls.Add "Forms.Label.1"
Me.Controls(0).Caption = "Это текст Надписи"
Me.Controls(0).Width = 80
Me.Controls(0).Move 10, 10
Me.Controls.Add "Forms.TextBox.1"
Me.Controls(1).Text = "Это текст в Поле"
Me.Controls(1).Width = 80
Me.Controls(1).Move 10, 50
Me.Controls.Add "Forms.CommandButton.1"
Me.Controls(2).Caption = "Это текст на Кнопке"
Me.Controls(2).WordWrap = True
Me.Controls(2).Font.Size = 10
Me.Controls(2).Font.Name = "Arial"
Me.Controls(2).Height = 50
Me.Controls(2).Move 100, 10
End Sub

Ответить

Номер ответа: 15
Автор ответа:
 VisualPaul



ICQ: 402519798 

Вопросов: 12
Ответов: 111
 Профиль | | #15 Добавлено: 15.06.07 16:55
Dim Test As VB.CommandButton
- создаёт кнопку
Можно так
1.Создаёшь невидимую кнопку
2.Настраиваешь её своства
3.Пишешь
Dim Test As New ИмяКнопки
Test.Visible = True

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам