Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 21.04.2011
Сообщений: 92

Как создать элементы управления динамически?

27.11.2011, 13:34. Показов 2597. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как создать элементы управления на форме динамически (радиобаттоны).
Суть задания: анализируя таблицу в датасете, создать столько радиобаттонов, сколько строк в таблице.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2011, 13:34
Ответы с готовыми решениями:

HELP: Как динамически создавать элементы управления ?
Нужно динамически (программно) создавать элементы управления (Label), а не получается :( Подскажите, пожалуйста, как !

Как загрузить динамически в форму элемент управления?
Можно ли во время работы в форму загрузить какой нибудь ЭУ, CoomandButton, и как это сделать?

Как динамически добавить массив эл-тов управления?
Надо добавить на форму массив текстбоксов заранее сэнкс

18
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.11.2011, 14:41
тут правда лейбл, и может что лишнее, примерно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Set Label1 = Me.Controls.Add(bstrProgID:="Forms.Label.1")
 
        '''''''''''''''''''''''''''''''''''''''
        'добавление других элементов управления
        'Check - BoxForms.CheckBox.1
        'ComboBox - Forms.ComboBox.1
        'CommandButton - Forms.CommandButton.1
        'Frame - Forms.Frame.1
        'Image - Forms.Image.1
        'Label - Forms.Label.1
        'ListBox - Forms.ListBox.1
        'MultiPage - Forms.MultiPage.1
        'OptionButton - Forms.OptionButton.1
        'ScrollBar - Forms.ScrollBar.1
        'SpinButton - Forms.SpinButton.1
        'TabStrip - Forms.TabStrip.1
        'TextBox - Forms.TextBox.1
        'ToggleButton - Forms.ToggleButton.1
        ''''''''''''''''''''''''''''''''''''
 
        Label1.Visible = True
 
        'цифра 55 высчитана эксперементальным путём
        If Len(ActiveDocument.Path) > 55 Then
            Label1.Height = 90
        Else
            Label1.Height = 70
        End If
 
        Label1.Width = 350
        Label1.Top = 275
        Label1.Left = 12
        'размер шрифта на кнопке
        Label1.Font.Size = 12
Вопрос в другом кто-нибудь знает как к созданным контролам сразу обработчик вешать
А модераторы скажут - Ципихович Эндрю не лезь, создай свою, раз 5 спрашивал и во многих местах, внятного ответа не получил, и форумчане добавляются, но это ведь это по теме, вот и автор подтвердит, да?
Она мне подмигнула, значит да!!!
1
0 / 0 / 0
Регистрация: 21.04.2011
Сообщений: 92
27.11.2011, 14:49  [ТС]
Спасибо)
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.11.2011, 14:52
неа, спасибо мало, надо присоединится
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Вопрос в другом кто-нибудь знает как к созданным контролам сразу обработчик вешать
мол, очень нужно, ОК??
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
27.11.2011, 15:01
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
как к созданным контролам сразу обработчик вешать
это как, типа процедуру к ним сразу писать, как то не въеду сходу
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.11.2011, 15:27
конечнооооооооооо
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
27.11.2011, 15:51
вариант: создать коды заранее, они при отсутствии контролов не мешают (только во место занимают)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Dim n, i
Private Sub Command1_Click(Index As Integer)
If i = 0 Then
For i = 1 To n - 1
Load Command1(i)
Command1(i).Top = Command1(i - 1).Top + Command1(0).Height
Command1(i).Left = Command1(i - 1).Left + Command1(0).Width
Command1(i).Visible = True
Command1(i).Caption = "Command" & i
Next
Else
'Command1_MouseDown
'или
'Label1 = "Вы нажали Command" & Index
End If
End Sub
 
 
 
Private Sub Command1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Index
Case Index
Label1 = "Вы нажали Command" & Index
End Select
End Sub
 
 
 
Private Sub Form_Load()
n = 10
Command1(0).Top = 0: Command1(0).Left = 0
Command1(i).Caption = "Command" & 0
 
Me.Width = n * Command1(0).Width
Me.Height = (n + 1) * Command1(0).Height
Label1.Left = Me.Width - Label1.Width
Label1.Top = 0
10
End Sub
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.11.2011, 15:58
Цитата Сообщение от gaw Посмотреть сообщение
вариант: создать коды заранее, они при отсутствии контролов не мешают (только во место занимают)
этот вариант мне известен, им пользуюсь, когде же кто-там рулит поймёт, что не помешало бы больше
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
27.11.2011, 16:02
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Вопрос в другом кто-нибудь знает как к созданным контролам сразу обработчик вешать
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public WithEvents Label1 As Label
 
Public Sub Form_Load()
    Set Label1 = Me.Controls.Add("VB.Label", "Label1")  ', ContainerObject
    With Label1
       .Caption = "ksjksjkljsd"
       .AutoSize = True
       .Visible = True
    End With
End Sub
 
Private Sub Label1_Click()
    MsgBox Label1.Name & "_click()"
End Sub
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.11.2011, 16:46
Vovan-VE, это то же самое, что у gaw'а
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
27.11.2011, 16:52
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
это то же самое, что у gaw'а
Ничего подобного.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.11.2011, 17:00
как ничего подобного, у Вас код уже припасён, прописан, а не создаётся, или поясните
Я то жду
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
 Set Label1 = Me.Controls.Add("VB.Label", "Label1")  ', ContainerObject
    With Label1
       .Caption = "ksjksjkljsd"
       .AutoSize = True
       .Visible = True
       .Script = {
        ....................
..................
...................
//по мотивам джавы
}
 
    End With
Если не трудно, посоветуйте MS
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
27.11.2011, 17:09
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
у Вас код уже припасён, прописан, а не создаётся
А Вам еще и код создавать динамически надо?

Добавлено через 7 минут
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
//по мотивам джавы
Там Вы его точно так же сначала создаёте, а потом используете. Иначе ему откуда взяться вообще?
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.11.2011, 17:12
типа, кнопку добавили - вагон угля разрузили, а тут ЦЭ просит второй разрузить, конечно надо, а что толку от кнопки, размер сказали кнопке, а что делать не сказали
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Иначе ему откуда взяться вообще?
ну я же пишу


Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
.Script = {
....................
..................
...................
//по мотивам джавы
}
одним словом
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Если не трудно, посоветуйте MS
Куда ни кинь, всюду клин ...
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
27.11.2011, 17:21
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
ну я же пишу
А вот Вы мне теперь разъясните принципиальную разницу (забыв про синтаксисы разных языков программирования), какая разница, где писать код - в отдельных процедурах, или в анонимных процедурах? Что там код обработчика, что здесь код обработчика. Те же яйца, только в другом холодильнике.

Ну вот ну нету в Вашем любимом бейсике анонимных функций/процедур, хоть ты тресни.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.11.2011, 18:03
Цитата Сообщение от Vovan-VE Посмотреть сообщение
А вот Вы мне теперь разъясните принципиальную разницу
Цитата Сообщение от Vovan-VE Посмотреть сообщение
какая разница, где писать код
ОК - на этом и остановимся, пусть мне дадут выбор, я сам выберу где

Цитата Сообщение от Vovan-VE Посмотреть сообщение
Ну вот ну нету в Вашем любимом бейсике анонимных функций/процедур, хоть ты тресни.
жалко

Добавлено через 40 минут
Vovan-VE, я понял почему Вы меня не допонимаете, смысл в том, что добавление контролов это в цикле и изначально я не знаю сколько их будет, и поэтому я должен припасти кодов штук ...., ранеее говорили тьма
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
27.11.2011, 18:06
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
добавление контролов это в цикле и изначально я не знаю сколько их будет
Если в цикле, значит все однотипные по смыслу, значит массив, как ранее предлагали.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.11.2011, 18:07
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
и поэтому я должен припасти кодов штук ...., ранеее говорили тьма
вот где соль!!!!!!!!!!! - бесит этот припас
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
27.11.2011, 18:12
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
вот где соль!!!!!!!!!!! - бесит этот припас
А как иначе? Откуда иначе код возмется? Не из вакуума же он телепортируется. Не может прога в 1 байт захватить вселенную. Никогда е это не удастся без сторонней помощи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2011, 18:12
Помогаю со студенческими работами здесь

Как динамически создавать элементы управления ?
Нужно динамически (из программы на VBA) создовать элементы управления (Label), а не получается :( Подскажите, пожалуйста, как !

Как динамически создать элемент управления на Panel
Public Class Form1 'Создаем массив текстовых полей Dim TextBoxes() As TextBox = New TextBox(19) {} Private Sub...

Как создать свои элементы управления
Как можно создать свои элементы управления ? К примеру собственный textbox, combobox с их параметрами, только вот по внешности другие ? ...

Как динамически создать массив из динамически конструируемых экземпляров класса?
Есть два класса.Подразумевается ,что первый в конструкторе выделяет интовый массив длинной n,второй выделяет массив экземпляров первого...

Создать программу динамически добавляющую элементы на форму
Создать программу динамически добавляющую несколько меток и полей ввода на форму.


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru