В модуле объявляються глобальные переменные, для каждой формы, и также создаеться Enum, в котором с 1 по n элементы сопоставлены с соответствующими формами:
- Код: Выделить всё
Public frm_Login As cls_Login
Public frm_Admin As cls_admin
Public frm_Editor As cls_Editor
Public frm_Splash As cls_Splash
Public frm_User As cls_User
Public Enum NeedsForm As Byte
No = 0
Splash = 1
Login = 2
Admin = 3
Editor = 4
User = 5
End Enum
' Переменная, по которой определяеться, какая форма нужна
Public NextForm As NeedsForm
Далее в процедуре Main, послеинициализации нужных данных, и др., когда понадобиться отобразить первую форму написать примерно слудующее:
- Код: Выделить всё
NextForm = NeedsForm.Splash
Do While NextForm <> NeedsForm.No
NextForm = NeedsForm.No
Select Case NextForm
Case NeedsForm.Admin
frm_Admin = New cls_admin()
frm_Admin.ShowDialog()
frm_Admin = Nothing
Case NeedsForm.Editor
frm_Editor = New cls_Editor()
frm_Editor.ShowDialog()
frm_Editor = Nothing
Case NeedsForm.Login
frm_Login = New cls_Login()
frm_Login.ShowDialog()
frm_Login = Nothing
Case NeedsForm.Splash
frm_Splash = New cls_Splash()
frm_Splash.ShowDialog()
frm_Splash = Nothing
Case NeedsForm.User
frm_User = New cls_User()
frm_User.ShowDialog()
frm_User = Nothing
End Select
Loop
Ну а в самих формах писать (там где необходимо перейти на другую форму)
- Код: Выделить всё
NextForm = NeedsForm.Login
Me.Close()
т.е. в переменную NextForm записывать значение, которое соответствует нужной форме...
Вот такая вот ко мне идея пришла... я вот решил её на ваш суд выложить, узнать, может я чего-то не учел? может будут возникать какие-то проблеммы? Ну и вообще, может просто какие-нибудь рекомендации будут по этой проблеме? может есть способ проще и лучше?