Как узнать, инициализирована ли форма? - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы