2012-10-20 1 views
0

Utilisation de MDI et de formulaires enfantsComment fermer le formulaire enfant

Code.

childform_load 

Me.MdiParent = MDIMain 

'

Private Sub form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    If e.KeyCode = Keys.Escape Then 
     Me.Close() 
    End If 
End Sub 

Le code ci-dessus fonctionne pour un formulaire MDI (nom de formulaire est MDIForm1), mais ne fonctionne pas pour form1 des enfants, lorsque j'appuie sur la touche d'échappement, il ferme le formulaire MDI au lieu de la forme enfant.

Je vérifie le nom du formulaire enfant aussi, le nom est form1 seulement.

Quel était le problème, j'ai besoin de changer toute propriété de forme enfant.

code Besoin d'aide

+0

Avez-vous également les formulaires enfants qui capturent Keydown? – Yatrix

Répondre

3

Cela fonctionne pour moi

Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown 
     If e.KeyCode = Keys.Escape Then 
      For Each child As Form In Me.MdiParent.MdiChildren 
       child.Close() 
      Next child 
     End If 
    End Sub 
0

Chaque fois que vous essayez de tirer l'événement sous forme d'enfant son tir sous la forme mère événement « form1_KeyDown ».

0

Il semble être à cause de la propriété (aperçu clé) des formes. Essayez donc de définir l'aperçu de la clé Faux dans le formulaire MDIMain, et définissez-le dans le formulaire enfant.

Questions connexes