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

C# Discussion :

Comment récupérer la hauteur d'un panel qui est en DockStyle Fill ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut Comment récupérer la hauteur d'un panel qui est en DockStyle Fill ?
    Bonjour,

    J'ai un panel auquel j'aimerais ajouter deux ListBox ayant chacune la moitié de la hauteur du panel. Une liste occupe la moitié dau haut et l'autre liste la moitié du bas. La taille de mon panel change en fonction de la taille de la fenêtre.

    Voici le constructeur de mon panel :

    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
     
    public MyPanel()
        {
          this.Dock = DockStyle.Fill;
     
          EnabledListBox = new CheckedListBox();
          EnabledListBox.ScrollAlwaysVisible = true;
          EnabledListBox.Dock = DockStyle.Top;
          EnabledListBox.Height = base.Size.Height / 2;
          EnabledListBox.Sorted = true;
     
          DisabledListBox = new ListBox();
          DisabledListBox.ScrollAlwaysVisible = true;
          DisabledListBox.Enabled = false;
          DisabledListBox.Dock = DockStyle.Top;
          DisabledListBox.Height = base.Size.Height / 2;
          DisabledListBoxs.Sorted = true;
     
          this.Controls.Add(DisabledListBoxs);
          this.Controls.Add(EnabledListBox);
        }
    De plus, y a-t-il un moyen dae faire fonctionner la ScrollBar dans ma ListBox Disabled?

    Merci de votre aide

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    si this.height ne suffit pas, et vu que tu es en fill, this.parent.height doit aller

    sinon pour l'ascenseur sur un objet disabled, ca me parait un peu contradictoire
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Le problème c'est que quand je passe dans le contructeur, mon panel n'a pas encore été ajouté à un Parent. Donc le code que tu m'as donné renvoie une NullReferenceException...

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    ah ok

    je comprenais pas pourquoi tu cherchais autre chose que this.height
    maintenant je comprends mieux
    dans le new this.height retourne 0 car il n'est pas encore initialisé

    donc le mieux est de déporté la partie initialisation graphique de ton panel dans l'évènement handlecreated (parentchanged pourrait aussi aller)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    ah ok

    je comprenais pas pourquoi tu cherchais autre chose que this.height
    maintenant je comprends mieux
    dans le new this.height retourne 0 car il n'est pas encore initialisé

    donc le mieux est de déporté la partie initialisation graphique de ton panel dans l'évènement handlecreated (parentchanged pourrait aussi aller)

    ouhlaaa, peux-tu m'éclaircir cette phrase stp? Il faut que j'ajoute un événement à mon panel du style handlecreated et c'est là dedans que je spécifie la hauteur de mes listes?

  6. #6
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Excuse-moi, je n'ai même pas cherché avant de te harceler. J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          this.HandleCreated += new EventHandler(MyPanel_SetListSize);
          this.SizeChanged += new EventHandler(MyPanel_SetListSize);
    De cette manière, lorsque je redimmensionne ma fenêtre, la taille des listes est automatiquement modifiée. Voici ma méthode SetListSize :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    EnabledList.Height = this.Parent.Height / 2;
    DisabledList.Height = this.Parent.Height / 2;
    Merci beaucoup pour ton aide!

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/11/2010, 17h12
  2. Réponses: 11
    Dernier message: 15/10/2010, 12h43
  3. Comment récupérer un signal durant un exe qui s'exécute?
    Par sabrinacorse dans le forum LabVIEW
    Réponses: 1
    Dernier message: 28/07/2009, 14h40
  4. Réponses: 2
    Dernier message: 16/03/2007, 16h26
  5. Réponses: 1
    Dernier message: 11/09/2006, 11h21

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