Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Открытие только одной формы / 10 сообщений из 10, страница 1 из 1
02.07.2009, 09:49
    #36069338
Mazai-XZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
Доброго времени суток! Есть проект с MDI формой и подчинёнными формами. есть одна подчинённая форма исполняющая функцию меню. на ней находятся кнопки, при нажатия на которые открываются соответсвующие формы. Все формы проекта (кроме формы МЕНЮ) одинакового размера. Проблема в том, что есчли последовательно нажимать на кнопки, вызывающие формы, то в итоге на экране видна только последняя загруженная форма, а остальные формы спрятаны за ней. При повторном запуске уже открытой формы, она естественно не выводиться на первый план и остаётся под последней загруженной. Как (и можно ли вообще) сделать так, чтоб загружалась ТОЛЬКО одна форма, точнее, чтоб при загрузке любой формы ВСЕ другие, уже загруженные формы, выгружались (закрывались), либо чтоб вызываемая форма, если она уже была загружена раньше, выводилась на передний план. Благодарю за внимание, жду помощи! )
...
Рейтинг: 0 / 0
02.07.2009, 10:01
    #36069375
FAndrew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
Попробуйте разобраться с понятием модальности.
Я думаю оно вас спасет.
...
Рейтинг: 0 / 0
02.07.2009, 12:49
    #36069840
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
Пишу наугад, т.е. не помню точно, как это надо написать, бейсика на данный момент у меня нет.
Код: plaintext
1.
2.
Sub Form_Deactivate()
   unload me
End Sub
Когда форма подменю теряет фокус - она выгружается.
...
Рейтинг: 0 / 0
02.07.2009, 12:50
    #36069844
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
если
unload me
не помогло, значит, пробуй
me.unload
...
Рейтинг: 0 / 0
02.07.2009, 12:53
    #36069852
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
Mazai-XZДоброго времени суток! Есть проект с MDI формой и подчинёнными формами. есть одна подчинённая форма исполняющая функцию меню. на ней находятся кнопки, при нажатия на которые открываются соответсвующие формы. Все формы проекта (кроме формы МЕНЮ) одинакового размера. Проблема в том, что есчли последовательно нажимать на кнопки, вызывающие формы, то в итоге на экране видна только последняя загруженная форма, а остальные формы спрятаны за ней. При повторном запуске уже открытой формы, она естественно не выводиться на первый план и остаётся под последней загруженной. Как (и можно ли вообще) сделать так, чтоб загружалась ТОЛЬКО одна форма, точнее, чтоб при загрузке любой формы ВСЕ другие, уже загруженные формы, выгружались (закрывались), либо чтоб вызываемая форма, если она уже была загружена раньше, выводилась на передний план. Благодарю за внимание, жду помощи! )

потому-что не надо так делать! кидайте PictureBox на рабочее окно MDI-main формы и там свои кнопки рисуйте.
...
Рейтинг: 0 / 0
02.07.2009, 12:57
    #36069869
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
MDIForm1.frm:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
VERSION  5 . 00 
Begin VB.MDIForm MDIForm1 
   BackColor       =   &H8000000C&
   Caption         =   "MDIForm1"
   ClientHeight    =    4125 
   ClientLeft      =    120 
   ClientTop       =    420 
   ClientWidth     =    4560 
   LinkTopic       =   "MDIForm1"
   StartUpPosition =    3   'Windows Default
   Begin VB.PictureBox Picture1 
      Align           =    1   'Align Top
      AutoRedraw      =   - 1   'True
      AutoSize        =   - 1   'True
      BorderStyle     =    0   'None
      Height          =    3015 
      Left            =    0 
      ScaleHeight     =    3015 
      ScaleWidth      =    4560 
      TabIndex        =    0 
      Top             =    0 
      Width           =    4560 
      Begin VB.CommandButton Command1 
         Caption         =   "Command1"
         Height          =    915 
         Left            =    540 
         TabIndex        =    1 
         Top             =    300 
         Width           =    2115 
      End
   End
End
Attribute VB_Name = "MDIForm1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub MDIForm_Resize()
On Error Resume Next
Me.Picture1.Move  0 ,  0 , Me.ScaleWidth, Me.ScaleWidth
End Sub
...
Рейтинг: 0 / 0
02.07.2009, 13:37
    #36070008
MasterWEB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
свойство visible поможет true/false form1.visible
...
Рейтинг: 0 / 0
10.07.2009, 19:08
    #36085012
Mazai-XZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
Огромнейшее спасибо ВСЕМ за ответы! Пока что вышел из положения ламерским методом: в свойствах КАЖДОЙ нужной формы в формЛоад прописал Me.SetFocusа так как все формы одного размера и находятся в одном месте на экране, то нужная в данный момент форма просто ловит фокус и появляется поверх всех остальных. Теперь буду пробовать ваши советы, ещё раз искрене благодарен!!!!
...
Рейтинг: 0 / 0
10.07.2009, 22:53
    #36085241
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
Mazai-XZ,

В свойствах формы это не делается.

Наверно, лучше так написать:

Код: plaintext
1.
2.
Private Sub Form_Activate()
    Me.SetFocus
End Sub

:0)
...
Рейтинг: 0 / 0
11.07.2009, 00:06
    #36085274
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие только одной формы
Эксперементировал я однажды с тем, что ты сейчас посоветовал.
Случались неприятные ситуации, связанные с тем, что активная форма хоть и брала на себя фокус, но, редиска такая, наверх в некоторых случаях не вылазила) Хотя, в общем случае, это выход из ситуации.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Открытие только одной формы / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]