IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment bloquer la fenêtre parente quand une fenêtre enfant est ouverte ?


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 50
    Points
    50
    Par défaut Comment bloquer la fenêtre parente quand une fenêtre enfant est ouverte ?
    Bonjour

    je souhaite ouvrir une fenêtre (enfant) à partir d'une Fenêtre principale en et surtout en bloquant l'accès à la fenêtre "parent" tant que la fenêtre enfant n'a pas été fermée.
    De plus je souhaite que la fenêtre enfant reste toujours au premier plan et que la page parent soit "gelée",
    et tous a L'idée étant que la popup soit un formulaire ou une boite de sélection que l'on soumette ou que l'on annule et qu'à sa fermeture, on revienne à la Fenêtre principale

    est-ce que quelqu'un peut m'aider svp ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu odis utiliser la méthode ShowDialog() pour rendre la fenêtre modale. Ainsi tant que cette dernière n'est pas fermée on pourra pas utiliser la fenêtre parent.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    tu odis utiliser la méthode ShowDialog() pour rendre la fenêtre modale.
    Bonjour
    le problème que avec ShowDialog() la fenêtre n'apparait pas sous mon fenêtre principal de type Mdicontainer et elle ne supporte pas le MdiParent d'où j'obtient une erreur
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     Dim fl As New Filtrage2
     
       fl.MdiParent = FrmMain
       fl.ShowDialog()
       fl.Focus()

    Ainsi tant que cette dernière n'est pas fermée on pourra pas utiliser la fenêtre parent.
    ca ce que je veut bloquer le fenêtre parent tant que la fenêtre enfant n'est pas fermée pour obliger l'utilisateur a une seule action

  4. #4
    Invité
    Invité(e)
    Par défaut
    je ne vois pas trop l'interêt de mettre une fenêtre modale pour une form MDI.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 50
    Points
    50
    Par défaut
    enfin la solution qui me permet de lancer le ShowDialog() a l'intérieur de mon menu principal merci Dieu
    voici le code pour qui a le même problème que moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
       fl.Owner = Me
       fl.StartPosition = FormStartPosition.CenterScreen
       fl.ShowInTaskbar = False
       fl.ShowDialog()
    Bonne Nuit

  6. #6
    Invité
    Invité(e)
    Par défaut
    Cool, tu viens de me filer une bonne info
    Merci, même si c'était pas mon problème.

  7. #7
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut MDIChild comme Boite de Dialogue
    Bonjour,walid.
    ce que tu veux n'est pas possible pour les formes MDIChild et parentMDI.
    les formes MDIChild sont gerees(creation,activation,suppression,fermeture etc..) par la fenetreparentMDI elles ont ete crees pour ca.On ne peut pas mettre un parentMDI.Enabled=False sinon on desactive tout.
    Maintenant si tu as besoin d'une boite de dialogue tu peux creer une fenetre modale ,faire ta saisie et renvoyer les informations vers une fenetre MDIChild
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    'Fenetre MDI 
    'un composant MainMenu boite à outils
    'item Fichier
    '2 sous items Nouveau et Fermer
    'item Fenetres
    '2 sous items Cascade et Horizontal
    Public Class frmMDI
        'cree un nouveau enfant Form1
        Private Sub MenuItemNouveau_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItemNouveau.Click
            Dim NouvEnfantMDI As New Form1()
            'Definit la Forme parente de la Forme Enfant.
            NouvEnfantMDI.MdiParent = Me
            'Affiche la  Forme Enfant
            NouvEnfantMDI.TopMost = True
            NouvEnfantMDI.Show()
            Dim NouvForme As New Form()
            'Forme Dialogue Orpheline.
            NouvForme.MdiParent = Nothing
            'Mise en avant plan 
            NouvForme.TopMost = True
            NouvForme.ShowDialog()
        End Sub
        'Ferme l'enfant actif 
        'Il faut ajouter un focus pour attirer la "vue" de l'user
        'et un message d'avertissement
        Private Sub MenuItemFermer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItemFermer.Click
            ' recherche l'enfant actif.
            Dim actifEnfant As Form = Me.ActiveMdiChild
            Dim reponse As MsgBoxResult
            If (Not actifEnfant Is Nothing) Then
                actifEnfant.Focus()
                reponse = MsgBox("vous-vous fermer la fenetre :" & actifEnfant.Text, MsgBoxStyle.OkCancel)
                If reponse = MsgBoxResult.Ok Then
                    actifEnfant.Close()
                End If
            End If
        End Sub
        Private Sub MenuItemFenCascade_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItemFenCascade.Click
            Me.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade)
        End Sub
     
        Private Sub MenuItemFenHorizontal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItemFenHorizontal.Click
            Me.LayoutMdi(System.Windows.Forms.MdiLayout.TileHorizontal)
        End Sub
    End Class
    Mais il ne faut pas comme dirait un francais "chercher midi à quatorze heures",en arabe "ou se trouve-t-elle mon oreille gauche à gauche ou à droite".
    bon code....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Comment atteindre objets d'une fenêtre parente
    Par droliprane dans le forum WinDev
    Réponses: 8
    Dernier message: 25/09/2012, 10h42
  2. Transmettre des données d'une fenêtre parent vers une fenêtre enfant
    Par ElizaD dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 28/04/2011, 11h56
  3. Réponses: 2
    Dernier message: 17/01/2008, 11h47
  4. Réponses: 1
    Dernier message: 21/12/2007, 21h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo