VB.NET .NET после загрузки события? - PullRequest
4 голосов
/ 12 марта 2010

Мне нужен какой-то способ узнать, когда форма закончила загрузку.Я рассуждаю так: у меня есть вторая форма, которая загружается при загрузке этой формы.Код для этого вызывается из form1.load.

Form2 в настоящее время отображается позади form1, так как я предполагаю, что form1 вызывает активацию или подобное в конце загрузки, поэтому любая Активация,BringToFront и т. Д. Вызовы на form2 отменяются.

Если вы посмотрите на код ниже, я попытался добавить frmAllocationSearch.Activate, frmAllocationSearch.BringToFront и Me.SendToBack после вызова на ShowAlloactionSearchDialog(), новсе это тратится впустую, так как что-то происходит после запуска события load, чтобы вывести Me на фронт.

Код:

Private Sub Allocation_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
                            Handles Me.Load

    ShowAlloactionSearchDialog()
End Sub

Private Sub ShowAlloactionSearchDialog()

    If frmAllocationSearch Is Nothing OrElse frmAllocationSearch.IsDisposed Then
        frmAllocationSearch = New AllocationSearch
        frmAllocationSearch.MdiParent = Me.MdiParent
        frmAllocationSearch.Info = Me.Info
        frmAllocationSearch.Top = Me.Top
        frmAllocationSearch.Left = Me.Left + Me.Width - frmAllocationSearch.Width
        frmAllocationSearch.AllocationWindow = Me

        frmAllocationSearch.Show()
    Else
        If frmAllocationSearch.WindowState = FormWindowState.Minimized Then
            frmAllocationSearch.WindowState = FormWindowState.Normal
        End IF
        frmAllocationSearch.Activate()
    End If
End Sub

Ответы [ 3 ]

3 голосов
/ 15 июля 2011

Возможно, вы захотите попробовать событие Forms 'Shown'

3 голосов
/ 12 марта 2010

Может быть, вы можете попробовать событие Form.Activation .

Происходит, когда форма активируется в коде или пользователем.

0 голосов
/ 03 сентября 2012

Вы можете использовать таймер для отложенного запуска функции. Включите таймер во время разработки и отключите его во время первого выполнения события timer.tick. Установите interval на 500 для удобного отложенного запуска.

Или вы можете использовать событие Form.Shown напрямую, но оно начнется немедленно без задержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...