MDI-форма и "дети"

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

MDI-форма и "дети"

Сообщение raros » 14.09.2004 (Вт) 11:43

Как сделать так, чтобы выбирая подпункт в меню MDI-формы, вызывать одну и ту же подчинённую форму, а не открывать новую?

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 14.09.2004 (Вт) 14:58

Какое меню? Какой подпункт? Какую форму?
Эй, телепаты, отзовитесь!
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

raros
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 09.09.2004 (Чт) 17:25

Сообщение raros » 14.09.2004 (Вт) 15:34

Меню, которое составляется с помощью MenuEditor-а.
...до меня уже "дошло"!

Private Sub mnuCoeficientAMF_Click()
Dim frmCoeficientAMF As New frmCoeficientAMF
frmCoeficientAMF.Show
End Sub

Написав этот код, я хотел чтобы он не открывал новое окно!!! :shaking2:

Извините, я новичок :oops:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.09.2004 (Вт) 17:22

Убрать слово New, дописать: Set frmCoeficientAMF = Forms("frmCoeficientAMF")

(это догадка, поправьте если вру)
Изображение

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 14.09.2004 (Вт) 19:06

2tyomitch: А зачем дописывать? Человеку нужно просто показать форму - для этого достаточно
Код: Выделить всё
frmCoeficientAMF.Show

А эта строчка
Код: Выделить всё
Dim frmCoeficientAMF As New frmCoeficientAMF

создаёт новый экземпляр формы.

Извините, я новичок

Зачем же извиняться, все в какой-то степени новички :wink: Ты сюда для того и пришёл, чтобы более опытные люди всё разъяснили. Просто вопрос надо формулировать почётче :wink:
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.09.2004 (Ср) 5:57

Tarik писал(а):А эта строчка
Код: Выделить всё
Dim frmCoeficientAMF As New frmCoeficientAMF

создаёт новый экземпляр формы.

Во-первых, нет; экземпляр создаётся только при вызове .Show
Во-вторых, я в своём ответе первым предложением предложил именно убрать New.
Так где я неправ?
Изображение

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

Сообщение alibek » 15.09.2004 (Ср) 10:31

А вот и нет :)
При Show форма только показывается, создается она при Load.
Для того, чтобы активировать форму Show не пойдет, пиши frmCoeficientAMF.SetFocus.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.09.2004 (Ср) 11:17

alibek, ты конечно прав, то ты меня не понял :-)
Я про то, что в последовательности операторов
Код: Выделить всё
Dim frmCoeficientAMF As New frmCoeficientAMF
frmCoeficientAMF.Show

форма создаётся на втором, а не на первом.
Изображение

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

Сообщение alibek » 15.09.2004 (Ср) 11:23

Мир, дружба, ириска? :)
Просто если обратиться к методам или свойствам не загруженной формы, то она автоматически загрузиться. Но я уже давно разучился доверять "автоматическому" и всегда пишу Load...Show, поэтому ответил тоже на автомате :)
Lasciate ogni speranza, voi ch'entrate.

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 15.09.2004 (Ср) 15:51

Во-вторых, я в своём ответе первым предложением предложил именно убрать New.
Так где я неправ?

Ты прав. Я хотел объяснить raros'у, что именно происходит при Dim frmCoeficientAMF As New frmCoeficientAMF. Просто "2raros:" забыл поставить :oops:
Во-первых, нет; экземпляр создаётся только при вызове .Show

Значит, я с .NET перепутал...
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!


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

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

Сейчас этот форум просматривают: PetalBot и гости: 22

    TopList