Страница: 1 |
Всё обыкновенно, хотя и громоздко. И формы, и контролы - это классы. И, в отличие от VB6, тут можно создать экземпляр любого из этих классов. Обычным путем. Пример Затем добавить полученный объект на форму И всё. А вообще, .net не делает ничего за кулисами - посмотри в код, который генерирует IDE, и там все это есть. И форма создается run-time, и контролы. С событиями тоже просто. Сначала создаем процедуру с сигнатурой обработчика соотв. события, затем для нашего контрола делаем так: addhandler b.click,b_click_handler Страница: 1 |
Вопрос: Как в RUN-TIME добавть контролы(кнопку) на форму?
Добавлено: 23.10.03 14:15
Автор вопроса: Atma | ICQ: 161504457
1.Как в RUN-TIME добавть контролы(кнопки,datagrid) не из формы а из модуля или класса?
Желатьно на VB.NET
Можно заодно и на C#
2.Как быть с событиями этих созданных контролов?
3.Заодно хотелось бы узнать в RUN-TIME создавать форму и на нее в RUN-TIME создавать контролы?Перехватывать сбытия этих контролов?
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
grayk
Вопросов: 5
Ответов: 100
Профиль | | #1
Добавлено: 23.10.03 16:47
dim b as new button()
with b
b.location=new point(x,y)
b.size=new size(w,h)
b.text="my button"
' etc...
end with
f..controls.add(b)
где f - объект формы.
где b.click - событие,
b_click_handler - наша процедура.
Номер ответа: 2
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #2
Добавлено: 23.10.03 16:55
1. А какая разница?
2. Можно в рантайме создавать обработчики событий с помощью AddHandler.
3. Можно и форму. По сути, то, что ты создаёшь в дизайнере, всё равно
создаётся в ран-тайме кодом - посмотри код создания контролов в
регионе в модуле формы.
Просто создай новую форму типа
Dim f As New System.Windows.Forms.Form
f.Size=New Rectangle(100, 200)
f.Text="Моя форма"
Dim a as New label
a.text="лабель"
a.visible=true
a.location=new point(10,20)
f.Controls.add a
f.show