2010-03-12 4 views
4

J'ai besoin d'un moyen de savoir quand un formulaire a fini de charger. Mon raisonnement est que j'ai un deuxième formulaire qui est chargé lorsque ce formulaire se charge. Le code pour cela est appelé de form1.load.VB.NET .NET après un événement de chargement?

Form2 est actuellement affiché derrière form1 que je devine form1 appelle un Activate ou similaire à la fin de la charge de sorte que toute Activer, BringToFront, etc. invite form2 sont surchargés.

Si vous regardez le code ci-dessous, je l'ai essayé d'ajouter frmAllocationSearch.Activate, frmAllocationSearch.BringToFront et Me.SendToBack après l'appel à ShowAlloactionSearchDialog(), mais ceux-ci sont tout perdu comme quelque chose qui se passe après l'événement de chargement est déclenché pour amener Me à l'avant.

Le code est:

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 

Répondre

3

Peut-être que vous pouvez essayer l'événement Form.Activated.

Se produit lorsque le formulaire est activé dans le code ou par l'utilisateur.

+0

Je devais ajouter un drapeau pour l'empêcher d'être sur le dessus tout le temps mais c'était parfait. – themaninthesuitcase

3

Vous pouvez essayer les formes FIGURANT 'événement

+1

Cet événement est toujours en cours d'initialisation. Le formulaire n'est pas entièrement chargé lorsque cet événement est appelé. – htm11h

0

Vous pouvez utiliser une minuterie pour le démarrage retardé d'une fonction. Activez le temporisateur au moment du design et désactivez-le au moment de la première exécution de l'événement timer.tick. Réglez le interval sur 500 pour un démarrage différé confortable.

Ou vous pouvez utiliser directement l'événement Form.Shown, mais il commencera immédiatement sans délai.

Questions connexes