Работа с формами

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Работа с формами

Сообщение АндрейБ » 02.02.2005 (Ср) 13:02

Помигите разобраться с отображением форм.
У меня есть Основная форма.
Из нее открывается вторая, более меньших размеров, из нее можно открывать третью таких же размеров. Вторая и третья цетнруются и их можно перемещать.
Я открываю вторую:
2.show vbmodal
что бы основная была не доступна.
Открываю третью через панель:
3.show vbmodal
Она то же модальная, и не дает возможность работать с основной и второй.
Закрытие третьей можно как через закрытие или через панель:
3.visible = false
Все работает нормально. Можно в разных вариантах перемещаться из 2 в 3 форму и наоборот.
Но одна проблема, я хочу что бы при открытии тертьей формы, вторая форма была не видна на заднем плане, а видна только основная. И естетсвенно третья при закрытии (переходе ко второй), то же не видна.
Я начал эксперементировать с:
.show vbmodal
.show vbnormal
.visible = false
.visible = true
.hide
Получается ерунда. При использование show, постоянно выскакивают ошибки.
Visivle и hide так же не верно работают. Получаетяся что при закрытие третьей формы вторая не открывается.
Объясните мне пожалуйста использование этих свойств.
Кто ищет, тот всегда найдет ...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 02.02.2005 (Ср) 13:11

Закрываешь вторую, открываешь модально третью.
Lasciate ogni speranza, voi ch'entrate.

OMEGUS
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 31.01.2005 (Пн) 11:40
Откуда: Санкт-Петербург

Сообщение OMEGUS » 02.02.2005 (Ср) 13:17

Попробуй использовать

Form1.show
Form1.hide

вместе с Load Form1 и Unload Form1

может получится.... :-)

АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Сообщение АндрейБ » 02.02.2005 (Ср) 13:32

вторая форма:
Private Sub B_Click()
CurOrd.Show vbModal
Order.Hide
End Sub

третья форма
Private Sub A_Click()
СurOrd.Hide
Order.Show (не важно что здесь)
End Sub

Когда надо перейти от третий ко второй пишет:
Run-time error '401':
Can't show non modal form when madal form is displayed
Кто ищет, тот всегда найдет ...

АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Сообщение АндрейБ » 02.02.2005 (Ср) 17:19

alibek
Скажи пожалуйста как закрываешь вторую.
Я не так давно работаю в VB и ползуюсь только Visible для скрытия форм.
Как прото закрыть форму.
:P
Да я дебил...
Кто ищет, тот всегда найдет ...

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 02.02.2005 (Ср) 17:28

Конечно очень самокритично :D

Unload Form3

:D

АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Сообщение АндрейБ » 02.02.2005 (Ср) 19:51

Unload - это как раз то что мне не хватало.
Еще вопрос.
3 форма можно закрыть через CloseButton. Мне хочеться, что бы при закрытии открывалась форма 2! Но когда я вешаю на событие Unload Form формы 3 открытие форма 2 обратно ошибка и форма 3 не закрывается.
В чем причина?
Кто ищет, тот всегда найдет ...

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 02.02.2005 (Ср) 22:31

Предлагаю использовать оператор End. :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.02.2005 (Чт) 8:33

Это такое издевательство?

Во-первых, в свойствах формы задай ControlBox = False, тогда крестика не будет вообще. Во-вторых, обрабатывай не Form_Unload, а Form_QueryUnload при параметре UnloadMode = vbQueryUnloadControlBox.
Lasciate ogni speranza, voi ch'entrate.

АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Сообщение АндрейБ » 03.02.2005 (Чт) 11:25

Спасибо за коментарии. Разобрался во всех свойствах форм.
Теперь работает корректно. 8)
Кто ищет, тот всегда найдет ...


Вернуться в Visual Basic 1–6

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

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

    TopList  
cron