Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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

Всё обыкновенно, хотя и громоздко. И формы, и контролы - это классы. И, в отличие от VB6, тут можно создать экземпляр любого из этих классов. Обычным путем.

Пример
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 - объект формы.

И всё. А вообще, .net не делает ничего за кулисами - посмотри в код, который генерирует IDE, и там все это есть. И форма создается run-time, и контролы.

С событиями тоже просто. Сначала создаем процедуру с сигнатурой обработчика соотв. события, затем для нашего контрола делаем так:

addhandler b.click,b_click_handler
где b.click - событие,
b_click_handler - наша процедура.

Ответить

Номер ответа: 2
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #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

Ответить

Страница: 1 |

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



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