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 :

Empêcher un Child de sortir du MDI


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Par défaut Empêcher un Child de sortir du MDI
    Bonjour a tous !

    Voila donc ma question: y a t-il un moyen d'empêcher une Form fille de sortir du cadre d'un MDI et donc empêcher l'apparition des foutues ScrollBars !!!???
    Donc de faire à la manière de notre Windows...imposer une contrainte de mouvement des fenêtres au delà du cadre.

    Merci d'avance

    PS: j'avais trouver ca mais ca ne fait rien du tout:

    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
        Private oldLoc As Point
     
        Private Sub _Move(ByVal sender As Object, ByVal e As System.EventArgs) _
          Handles MyBase.Move
            If Not Me.ParentForm Is Nothing Then
                If Me.Left < Me.ParentForm.ClientRectangle.Left Or _
                   Me.Right >= Me.ParentForm.ClientRectangle.Width - 5 Or _
                   Me.Top < Me.ParentForm.ClientRectangle.Top Or _
                   Me.Bottom >= Me.ParentForm.ClientRectangle.Height - 5 Then
                    Me.Location = oldLoc
                Else
                    oldLoc = Me.Location
                End If
            End If
        End Sub
     
        Private Sub _Load(ByVal sender As Object, _
          ByVal e As System.EventArgs) Handles MyBase.Load
            oldLoc = Me.Location
        End Sub

  2. #2
    Membre expérimenté Avatar de Saintelaitlait
    Homme Profil pro
    Responsable ServiceDesk
    Inscrit en
    Août 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable ServiceDesk
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 179
    Par défaut
    Salut,


    Après un combat à mort d'environ 1 heures avec vb.net, j'ai arriver à faire ce que tu veux

    Il faut calculer la hauteur de la statusBar dans le bas, la hauteur de ton menuStrip si tu en as un, la hauteur de ton toolStrip si tu en as un. Prendre en compte la hauteur et la largeur dans la form que tu déplace.

    J'ai mis tout ca dans l'event Move de la form enfant.

    Ca donne :

    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
     
      Private Sub Form1_Move(sender As Object, e As System.EventArgs) Handles Me.Move
            Dim form As Form = DirectCast(sender, Form)
            Dim sS As StatusStrip = DirectCast(MDIParent1.StatusStrip, StatusStrip)
            Dim mS As MenuStrip = DirectCast(MDIParent1.MenuStrip1, MenuStrip)
            Dim tS As ToolStrip = DirectCast(MDIParent1.ToolStrip1, ToolStrip)
     
     
            If (Left < MdiParent.DisplayRectangle.Left) Then
                Left = MdiParent.DisplayRectangle.Left
            End If
     
            If (Top < MdiParent.DisplayRectangle.Top) Then
                Top = MdiParent.DisplayRectangle.Top
            End If
            If (Top + Height > MdiParent.DisplayRectangle.Top + MdiParent.DisplayRectangle.Height - sS.Height - mS.Size.Height - tS.Size.Height) Then
                Top = MdiParent.DisplayRectangle.Top + MdiParent.DisplayRectangle.Height - Height - sS.Height - mS.Size.Height - tS.Size.Height
            End If
            If (Left + Width > MdiParent.DisplayRectangle.Left + MdiParent.DisplayRectangle.Width) Then
                Left = MdiParent.DisplayRectangle.Left + MdiParent.DisplayRectangle.Width - Width
            End If
        End Sub
    Saintelaitlait 1 , mdiContainer 0

    Bonne chance

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Septembre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2012
    Messages : 36
    Par défaut
    Bonjour!

    Sujet intéressant! Je prend! Merci Saintelaitlait!

    J'ai une question liée à la précédente. Je voudrais que, si je fais un ALT TAB vers une autre Appli, puis que je rappelle ma Form_MDI, elle conserve son enfant dans son espace de travail. A titre d'exemple, un programme excel avec ses feuilles.

    C'est gérable en VB?

  4. #4
    Membre expérimenté Avatar de Saintelaitlait
    Homme Profil pro
    Responsable ServiceDesk
    Inscrit en
    Août 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable ServiceDesk
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 179
    Par défaut
    Je te conseil de créer une nouvelle discussion

Discussions similaires

  1. [C# 3] Empêcher un contrôle de sortir d'un panel
    Par stailer dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/08/2008, 21h03
  2. Comment fermer une fenêtre Child dans une application MDI
    Par bahiatoon dans le forum C++Builder
    Réponses: 9
    Dernier message: 05/10/2006, 08h57
  3. Réponses: 4
    Dernier message: 04/09/2006, 19h40
  4. empêcher un break de sortir de plusieurs boucles imbriquées
    Par quidam66 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/06/2006, 21h52
  5. Empêcher un curseur de sortir d'une JWindow
    Par Bighobbit dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 24/03/2006, 17h10

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