Сделать недоступной форму при вызове второй

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

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

pakulo
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 08.01.2008 (Вт) 2:35

Сделать недоступной форму при вызове второй

Сообщение pakulo » 25.01.2008 (Пт) 4:02

Доброго времени суток,

Мне нужно сделать недоступным форму с которой была вызвана форма, на момент выполнения второй. Если ее закрыть, то сделать перву форму активной вновь. Может есть какие-то стандартные методы?
Вообще желательно в vb.net, но думаю без разницы...

Спасибо...

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 25.01.2008 (Пт) 8:08

Show? vbModal?
Salus populi suprema lex

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 25.01.2008 (Пт) 10:36

Form1.Visible =False
Главное, ребята, сердцем не стареть...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 25.01.2008 (Пт) 11:43

Saturn.65 писал(а):Form1.Visible =False

Причем тут это? dr.MIG правильно написал, что отображать вторую форму модально.
Весь мир матрица, а мы в нем потоки байтов!

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 25.01.2008 (Пт) 16:01

Viper
Я предлагаю, как вариант. Чем плохо?
Главное, ребята, сердцем не стареть...

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

Сообщение Денис » 25.01.2008 (Пт) 16:04

Saturn.65
Тогда предлагай вариант
Код: Выделить всё
Form1.Enable = False
а то топикстартер просит вообще-то модально окно, а у тебя просто невидимость
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

pakulo
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 08.01.2008 (Вт) 2:35

Сообщение pakulo » 25.01.2008 (Пт) 16:14

Не прятать ее не нужно... да и потом нужно обратно показать.. так же и с enabled, я сначала так и сделал, потом в переменную записываю какая форма вызывает, так как могут разные, но потом вспомнил что есть модальность, но забыл как ее использовать... как применить vbModal?

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 25.01.2008 (Пт) 16:17

Денис писал(а):Saturn.65
топикстартер просит вообще-то модально окно

Он просит недоступность окна. Почему я и встрял, может и не к месту. Т.е. чтоб кнопку не нажать или еще как. Можно и Disable. Три варианта на его вкус. Не известно, что у него за процессы в первом окне, таймер какой, а то с выводом модального он у него остановится.
Главное, ребята, сердцем не стареть...

pakulo
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 08.01.2008 (Вт) 2:35

Сообщение pakulo » 25.01.2008 (Пт) 16:18

все, нашел, showDialog()
спасибо, по msd нашел по vbModal...

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

Сообщение Денис » 25.01.2008 (Пт) 16:50

pakulo
Ну да, ну да!
Классический случай:
создай две формы и в модуль первой помести это
Код: Выделить всё
Private Sub Form_Click()
Form2.Show vbModal, Me
End Sub

теперь при клике на первой форме будет выскакивать вторая форма, блокирующая работу первой, но не блокирующая работу других программ и системы.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

pakulo
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 08.01.2008 (Вт) 2:35

Сообщение pakulo » 25.01.2008 (Пт) 18:56

Проблема, вызываю окно модально, первый раз все нормально... а второй раз выдает ошибку, когда обращаюсь к созданному объекту...
создаю его так:
Код: Выделить всё
Dim listBarMenu As New ButtonListBar.ButtonListBar
listBarMenu.Dock = DockStyle.Left
Me.Controls.Add(listBarMenu)


ошибка
Код: Выделить всё
Object reference not set to an instance of an object.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 25.01.2008 (Пт) 19:11

Я вот вызвал модальное окно.
Код: Выделить всё
Private Sub Command1_Click()
Form2.Show vbModal
End Sub

И никаких ошибок. Или я не так вызываю?
Главное, ребята, сердцем не стареть...

pakulo
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 08.01.2008 (Вт) 2:35

Сообщение pakulo » 25.01.2008 (Пт) 19:19

На форме я создаю объект, созданный не мной...
После того, как вызываю второй раз окно, то выскакиевает ошибка, когда обращаюсь к этому объекту, возможно он не удаляется или еще что-то.. я использую vb2005, может и в vb6 есть такая ошибка.. я пока не успел проверить...

pakulo
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 08.01.2008 (Вт) 2:35

Сообщение pakulo » 25.01.2008 (Пт) 19:23

и еще, может кто подскажет как можно заблокировать форму кроме enabled=false? Вот как например когда вызываю окно как модальное, то оно блокирует с которого вызывалось просто нельзя нажимать, элементы не становятся серыми, акогда enabled=false вся форма серая... просто я там использую свои объекты и они не совсем правильно отрисовываются...

pakulo
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 08.01.2008 (Вт) 2:35

Сообщение pakulo » 25.01.2008 (Пт) 19:33

я понял почему ошибку выдает, окно не выгружается польностью, когда его закрываю... как его выгрузить в vb2005? Vb6 помню был unload

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 28.01.2008 (Пн) 8:29

pakulo, больше кода в студию. Удалить объект в VB2005 - установить ссылку на него в Nothing.
З.Ы. Модераторы, перенес бы кто тему по назначению.
Весь мир матрица, а мы в нем потоки байтов!

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

Сообщение Денис » 28.01.2008 (Пн) 9:17

Ребят, если у кого вопросы по синтаксису и при этом проблемы с доступом в инет, есть классный вариант - контекстная справка в VBA. Очень удобно, рекомендую.
Сорри за оффтопик.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


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

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

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

    TopList  
cron