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 :

Changer le parent d'un élément (Panel - SplitContainer)


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 81
    Par défaut Changer le parent d'un élément (Panel - SplitContainer)
    Bonjour à tout le monde,


    J'ai un petit problème, sur ma form, j'ai un SplitContainer ancrer sur toute la fenêtre, et quand je mets un panel (de manière graphique), il se met dessus (logique).

    Je souhaiterai le faire apparaitre sur la form directement, quand je cache via un bouton le StripContainer, je voudrais voir le panel et inverssement. J'ai vu des petites choses via le "parent". J'ai testé sans succès.

    Voici différent test qui ne marche pas que j'ai effectué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Application_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
     
            Me.Controls.Add(PNL_General)
     
            PNL_General.Parent = Me
            PNL_General.Visible = True
            PNL_General.Enabled = True
     
            PNL_General.Show()
     
    End Sub
    Je ne sais pas s'il y a une méthode pour forcer le panel à se mettre sur la form et non pas sur le SplitContainer.


    Cordialement,
    Bacube

  2. #2
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut,

    Il faut que tu ajoute ton panel aux controls de ton form/splitcontainer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls.Add(panel) 'Me fait référence au container que tu veux

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 81
    Par défaut
    Oui, le "Me" fait référence à ma form "Application". Pour ça que je ne comprend pas que le panel ne passe pas sur mon formulaire ...

  4. #4
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Ah oui pardon j'avais pas vu que tu le faisait déjà..

    Chez moi ce code fonctionne parfaitement:

    Form1
    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
        Dim p As Panel
     
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
     
            p = New Panel
            p.Location = New Point(50, 50)
            p.Size = New Size(50, 50)
            p.BackColor = Color.Blue
     
            Me.Controls.Add(p)
     
        End Sub
     
     
        Private Sub ButtonToggleContainer_Click(sender As System.Object, e As System.EventArgs) Handles ButtonToggleContainer.Click
     
            If p.Parent Is Me Then
                'ajout dans un panel
                Panel1.Controls.Add(p)
            Else
                'ajout dans le form
                Me.Controls.Add(p)
            End If
     
        End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 81
    Par défaut
    le SplitContainer pose problème ou son ancrage, car quand je demande de mettre le panel sur la form directement j'ai rien, mais quand je demande de mettre le panel dans le split, là ça marche...

  6. #6
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Cela peut venir de plein de choses: docking, autosize, etc.
    On n'a pas assez d'élément pour pouvoir réellement t'aider..

    Mon conseil, vérifie les différentes propriétés(comme celles citées au dessus) de tes composants (de ton panel surtout) et essaie de jouer un peu avec..

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 81
    Par défaut
    Merci pour ton aide, je vais regarder ça plus en profondeur, car ça me permettrais de ne pas passer par une autre fenètre. Sinon peut être existe t'il un autre moyen de réaliser ce que je souhaite.

    Un peu à la manière de calques sous les logiciel de DAO/CAO pour ceux qui connaissent. (on mets des objets dans un calque, des autres objets dans un autre calque, et après libre à nous d'afficher les deux ou un des deux calques)

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Citation Envoyé par Bacube Voir le message
    Un peu à la manière de calques sous les logiciel de DAO/CAO pour ceux qui connaissent. (on mets des objets dans un calque, des autres objets dans un autre calque, et après libre à nous d'afficher les deux ou un des deux calques)
    Bonsoir,
    La propriété Visible joue en quelque sorte ce rôle :
    Obtient ou définit une valeur indiquant si le contrôle et tous ses contrôles enfants sont affichés.
    et le code de -N4w4k- va bien :
    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
    Public Class Form1
        Dim p As Panel
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            p = New Panel
            p.Location = New Point(50, 50)
            p.Size = New Size(50, 50)
            p.BackColor = Color.Blue
     
            SplitContainer1.Visible = False
            Me.Controls.Add(p)
     
        End Sub
     
     
        Private Sub ButtonToggleContainer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonToggleContainer.Click
     
            If p.Parent Is Me Then
                'ajout dans un panel
                SplitContainer1.Visible = True
                SplitContainer1.Panel1.Controls.Add(p)
            Else
                'ajout dans le form
                Me.Controls.Add(p)
                SplitContainer1.Visible = False
     
            End If
     
        End Sub
     
    End Class

Discussions similaires

  1. Changer le parent d'un element
    Par Philorix dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/02/2007, 16h28
  2. [Treeview] Changer le parent d'un Node
    Par Aloneghost dans le forum Delphi
    Réponses: 2
    Dernier message: 07/01/2007, 06h25
  3. Réponses: 6
    Dernier message: 22/12/2005, 11h32
  4. Réponses: 11
    Dernier message: 15/04/2005, 15h42
  5. [JList] changer la couleur d'UN élément
    Par youb dans le forum Composants
    Réponses: 1
    Dernier message: 31/03/2005, 11h31

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