Как узнать, инициализирована ли форма? - VB
Формулировка задачи:
Проверяю так:
Можно как-то проще?
Решение задачи: «Как узнать, инициализирована ли форма?»
textual
Листинг программы
Option Explicit
Const ii = 4000, jj = 3000, r = 90
Public WithEvents lbx As ListBox
Dim i&, v
Private Sub lbx_Click()
With lbx
If .ListIndex = 0 Then
For Each v In Forms: Unload v: Next
Else
Forms(.ListIndex - 1).SetFocus
End If
End With
End Sub
Private Sub Form_Load()
Tag = Forms.Count - 1
Caption = "Окно " & Tag + 1
Move (Tag Mod 2) * ii, Abs(Tag > 1) * jj, ii, jj
If Tag = 0 Then
Set lbx = Controls.Add("vb.listbox", "lbx"): With lbx
.Move r, r, ii \ 2, jj \ 2
For Each v In Array("Закрыть все", "Фокус на окно ")
i = i + 1
If i = 2 Then
For i = 1 To 4
.AddItem v & i
Next
Else: .AddItem v
End If
Next
.Visible = 1
End With
End If
If Forms.Count < 4 Then
On Error Resume Next
With New Form1
.Visible = 1
End With
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Tag = 0 Then
lbx.ListIndex = 0
Else
On Error Resume Next
With Forms(0)
.lbx = "фокус на " & Me.Caption
.lbx.RemoveItem (.lbx.ListIndex)
End With
End If
End Sub