Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как в класс включить форму? 
:(
    Опции темы
Bertran
Дата 27.10.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.10.2008

Репутация: нет
Всего: нет



Как сделать так, чтобы по определенному методу выскакивала форма с некоторыми данными объекта?
Я сделал так: написал отдельно класс, создал отдельно форму (в пределах одного проекта, разумеется. + имеется основная форма  и т.п.) и из класса обращаюсь к форме (класса/объекта), но интуиция подсказывает мне, что это не совсем правильно. Знаю, что можно сделать ручками - описать все в коде класса (пока не научился), но можно же наверное создать форму в дизайнере и как-то прикрутить ее?
или же мой вариант правильный? Грамотное ли такое решение с точки зрения эстетики программирования?  smile
класс приватный, используется лишь в данном проекте.
PM   Вверх
Pilger
Дата 27.10.2008, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



Не очень понял.. Ты можешь просто создать объект(формы) и передать ему нужные тебе параметры и потом просто показать ее... или я что то не так понял.


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
kipelovets
Дата 28.10.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 7.10.2007

Репутация: нет
Всего: нет



добавляешь в проект форму с именем например Form2, в дизайнере добавляешь на нее необходимые контролы, в редакторе кода добавляешь метод:

Код

Public Sub SetData(ByVal param1 as String, ByVal param2 as Integer) 
  ' Заполняем контролы данными твоего объекта
  '...
End Sub


в том твоем методе, из которого должна "выскакивать" форма пишешь:
Код

Dim frm as New Form2 
frm.SetData("hello,world",42)
frm.Show() ' или frm.ShowModal() если нужно дождаться закрытия формы


только не забудь удалить форму из памяти, когда она тебе больше не нужна
PM MAIL   Вверх
Pilger
Дата 28.10.2008, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



Или просто в класс формы (Form2) добавляешь конструктор, например:
Код

    Public Sub New(ByVal param1 As String, ByVal param2 As Integer) 'параметры, которые передаешь
        Me.InitializeComponent()

        TextBox1.Text = param1 'присваиваешь
        TextBox2.Text = param2
    End Sub


А так создаешь и показываешь в другой форме:
Код

        Dim frm As New Form2("hello,world", 42)
        frm.Show()



--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
Bertran
Дата 31.10.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.10.2008

Репутация: нет
Всего: нет



Я так понял в моем варианте нужно было бы оставить как есть: в проекте класс + форма для этого класса. Единственное, что мне не нравится - что форма получается публичная.
А приватную форму можно описать только (?) в коде класса. Только вот как на эту форму набросать парочку контролов?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.