Переход от одной формы к другой и обратно

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

nalex
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 03.01.2009 (Сб) 17:00

Переход от одной формы к другой и обратно

Сообщение nalex » 03.01.2009 (Сб) 17:34

У меня установлен Visual Вasic 2008 Express Editon. Мне нужно разработать приложение типа мастера, которое будет решать задачу за несколько шагов. При этом мне необходимо при переходе от одного шага к другому закрыть первую форму и открыть вторую. Возможно потребуется обратный шаг: закрыть вторую форму открыв первую. В VB6 это решается просто:
Form2.Show
Form1.Hide
Первая форма закрывается, вторая открывается. В Visual Вasic 2008 Express Editon вторая форма открывается, а первая не закрывается.
При обратном процессе пишется код:
Form1.Show
Form2.Hide
В результате первая форма открывается - вторая закрывается. В Visual Вasic 2008 Express Editon первая форма открывается, а вторая не закрывается.
Подскажите как обеспечить такой же переход от формы к форме в В Visual Вasic 2008 Express Editon

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Переход от одной формы к другой и обратно

Сообщение MIT » 03.01.2009 (Сб) 18:21

Осмелюсь предложить альтернативный подход: одна форма и на ней несколько контейнеров (например панель), меняешь им видимость и размеры формы.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Dry
Новичок
Новичок
Аватара пользователя
 
Сообщения: 26
Зарегистрирован: 08.02.2007 (Чт) 2:03

Re: Переход от одной формы к другой и обратно

Сообщение Dry » 06.01.2009 (Вт) 17:12

Me.Visible = False
Form2.Visible = True

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Переход от одной формы к другой и обратно

Сообщение FireFenix » 17.01.2009 (Сб) 0:09

Me.Close()
:)
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Metallikus
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 18.01.2009 (Вс) 1:32

Re: Переход от одной формы к другой и обратно

Сообщение Metallikus » 18.01.2009 (Вс) 2:03

FireFenix писал(а):Me.Close()
:)

Ага, особенно главную так :D :D :D
В VBnet нельзя чтобы форма сама на себя ссылалась, используй Me.Hide
Пиши в первой форме:
Form2.Show()
Me.Hide()
а во второй:
Form1.Show()
Me.Hide()

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Переход от одной формы к другой и обратно

Сообщение Williams » 18.01.2009 (Вс) 2:33

Вообще-то, Form.Show это убого, если вы в .net, то создавайте экземпляр формы и работайте с ним
И вы думаете, что вас оставят в живых после прочтения этого поста?

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Re: Переход от одной формы к другой и обратно

Сообщение 1Steps » 18.01.2009 (Вс) 3:09

nalex
Я тебе уже писал на другом форуме.

Вообще-то, Form.Show это убого, если вы в .net, то создавайте экземпляр формы и работайте с ним
Следуй этому примеру.
Удалена за ненадобностью.

Metallikus
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 18.01.2009 (Вс) 1:32

Re: Переход от одной формы к другой и обратно

Сообщение Metallikus » 18.01.2009 (Вс) 3:29

Williams писал(а):Вообще-то, Form.Show это убого, если вы в .net, то создавайте экземпляр формы и работайте с ним

Это что-то типа
Код: Выделить всё
    Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles btnNext.Click
        Dim Экземпляр_формы As New Form1
        Экземпляр_формы.Show()
    End Sub

чтоль?
По-моему так следует поступать только если может понадобиться несколько экземпляров одной и той же формы одновременно.
Много здесь таких как я, кто в инете через GPRS?

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Re: Переход от одной формы к другой и обратно

Сообщение 1Steps » 18.01.2009 (Вс) 4:17

По-моему так следует поступать только если может понадобиться несколько экземпляров одной и той же формы одновременно.

В данном случае, нужно создать один экземпляр и с ним работать.
Удалена за ненадобностью.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Переход от одной формы к другой и обратно

Сообщение Денис » 19.01.2009 (Пн) 11:11

Вне зависимости от платформы, если у вас приложение с большим количеством форм, рекомендуется писать основной класс, в котором будет реализован "скелет" логики приложения. В этом классе-скелете объявлять все необходимые формы, вызывать и закрывать оттуда. В VB (да и в .NET судя по всему, тоже) это реализуется созданием невидимой главной формы, которая загружается (load FrmMain), но никогда не показывается, либо показывается в начале и в конце процесса "шагания".
_________________

Хм, абстрактный пример: Основной класс создает класс формы "Step1", затем на форме вы делаете какие-то действия (как-то: меняете даты, выбираете пути, устанавливаете параметры (checkbox или radiobutton) после чего нажимаете кнопку "Далее". При нажатии этой кнопки класс 1-го шага посылает основному классу сообщение "далее" и выбранные параметры, которые основной класс сохраняет, затем выгружает первую форму и загружает вторую.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

    TopList