туплю, Windows Forms

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

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

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

туплю, Windows Forms

Сообщение Ramzes » 20.10.2005 (Чт) 11:46

Есть две формы например "A" И "B"
При запуске проекта грузится форма "А" (Допустим окно ввода пароля)
После ввода пароля, обьект формы надо убить,и открыть форму В...

туплю, хелп, плиз, как решить :oops: :oops: :oops: :oops: :oops: :oops:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.10.2005 (Чт) 11:52

А на VB6 как бы решил? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 20.10.2005 (Чт) 12:12

Код: Выделить всё
b.show
unload me


Но в .Net так не проходит 8)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.10.2005 (Чт) 12:14

Что именно и в какой форме не проходит в .Net? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 20.10.2005 (Чт) 12:15

напритмер делаем так

b.show
me.close

проэкт в таком случае просто завершает свою работу, т.е. приложение закрывается

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.10.2005 (Чт) 12:31

А если сделать главной не форму, а sub main? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 20.10.2005 (Чт) 12:35

тоже самое

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 20.10.2005 (Чт) 12:46

sub main()

Dim a=new form1
a.Showdialog

Dim b=new form1
b.Showdialog

End sub
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 20.10.2005 (Чт) 12:52

Sebas
Ты меня видимо не понял, мне форму б надо грузить, только в том случае, если правильно введен пароль

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 20.10.2005 (Чт) 13:11

End в форме а?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 20.10.2005 (Чт) 13:12

sub main()

do

Dim a=new form1
a.Showdialog

loop until a.ok

Dim b=new form1
b.Showdialog

End sub
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 20.10.2005 (Чт) 14:04

все, разобрался, пришлось немного переделать код формы А :)

Лохматый
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 19.06.2005 (Вс) 16:36
Откуда: Краснодар

Сообщение Лохматый » 21.10.2005 (Пт) 21:05

А не проще стартовой формой сделать B и в её процедуре load поставить
Код: Выделить всё

dim f1 as new form1 ' форма A
f1.showdialog

а в форме A сделать при активации пароля
Код: Выделить всё

me.close

В результате, не смотря на то, что стартовая B - первая отображается A, а при закрытии появляется форма B.

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 24.10.2005 (Пн) 7:24

Вопрос по теме:

У меня в программе есть основная форма и несколько дополнительных. Переключение между формами идет только через основную. То есть при загрузке доп. форм нужно основную закрывать, а после закрытия этой доп. формы основную форму восстанавливать.

Подскажите, как правильно организовать такое?
Заране благодарен.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 24.10.2005 (Пн) 12:23

b.show
me.hide

Лохматый
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 19.06.2005 (Вс) 16:36
Откуда: Краснодар

Сообщение Лохматый » 24.10.2005 (Пн) 13:30

MainForm - главная форма и объект запуска.
Form2 ... FormN - дополнительные формы, где N - порядковый номер формы
Когда надо отобразить форму
Код: Выделить всё

FormN. Show() ' Отображает форму с порядковым номером N
me.Hide() Скрывыает базовую форму
Для отображение главной формы
me.Show() ' Если из главной формы
FormN.Hide() ' Или если закрыть FormN.Close()

Если FormN закрыть? то каждый раз нужно создавать новый экземпляр формы, что вличёт за собой не сохранение изменений произведённых пользователем.
Лучше перед этим в модуле создать все дополнительные формы
Код: Выделить всё

Public FormN as new FormN

а при закрытии каждой формы в процедуре Close, сделать так:
Код: Выделить всё

e.Cancel = True
me.Hide

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 24.10.2005 (Пн) 14:48

Спасибо, народ!
У меня Sub Main запускает MainForm. Далее по клику кнопок из этой формы запускаются другие формы.
Все работает, вот правда непонятный момент:
если FormN.Show, то приложение полностью закрывается, если ShowDialog, то порядок.

Лохматый
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 19.06.2005 (Вс) 16:36
Откуда: Краснодар

Сообщение Лохматый » 24.10.2005 (Пн) 17:56

baha76 писал(а):Спасибо, народ!
У меня Sub Main запускает MainForm. Далее по клику кнопок из этой формы запускаются другие формы.
Все работает, вот правда непонятный момент:
если FormN.Show, то приложение полностью закрывается, если ShowDialog, то порядок.

Как метод Show может закрыть приложение?
Метод ShowDialog - отображает окно модально, т.е. пользователь не может переключаться меж окнами данного приложения, пока оно не будет закрыто. Если после:

FormN.ShowDialog()

идет какой либо код, то выполнение этого кода тоже приостанавливается, пока окно не будет закрыто.

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 25.10.2005 (Вт) 9:24

FormN появляется на пол секунды и потом все приложение закрывается.
Мне тоже странно это явление. :shock:

Лохматый
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 19.06.2005 (Вс) 16:36
Откуда: Краснодар

Сообщение Лохматый » 25.10.2005 (Вт) 16:39

baha76 писал(а):FormN появляется на пол секунды и потом все приложение закрывается.
Мне тоже странно это явление. :shock:

Пришли мне код.

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 14.12.2005 (Ср) 18:52

Ramzes
Есть две формы например "A" И "B"
При запуске проекта грузится форма "А" (Допустим окно ввода пароля)
После ввода пароля, обьект формы надо убить,и открыть форму В...


все, разобрался, пришлось немного переделать код формы А


Приветствую.
А нельзя ли поделиться способом решения этого вопроса. Буду премного благодарен.
Метод hide для формы А не подходит, так как при закрытии формы В приложение продолжает выполняться (форма А висит в скрытом режиме).

Самые наилучшие пожелания.

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 15.12.2005 (Чт) 10:02

Поступи проще,
открй форму Б, но спрятанной, а из нее форму авторизации А,
если авторизация ОК, то показывай форму Б.
а вообще-то стартуй из модуля, открывай форму А, проверяй авторизацию и если ОК, из модуля же открывай Б
Max

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 17.12.2005 (Сб) 11:51

коллеги, вообще в настройках проекта мона выбрать как будет закрываться проект: либо после закрытия стартовой формы либа после закрытия последней формы
подходит?
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.


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

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

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

    TopList  
cron