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 :

Redimensionner automatiquement les contrôles dans un formulaire


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations forums :
    Inscription : Janvier 2004
    Messages : 18
    Points : 20
    Points
    20
    Par défaut Redimensionner automatiquement les contrôles dans un formulaire
    Bonjour à tous,
    Je souhaites redimensionner dynamiquement les contrôles qui figurent sur mon formulaire principale quant celui-ci est redimensionné.
    Comment y procéder?
    Merci d'avance pour votre aide.

    Gilus

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 243
    Points
    243
    Par défaut
    Bonjour,

    Si je me souviens bien.
    Il vous suffit de gérer différent panel dans votre form avec un différent Dock

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonPanel.Dock = DockStyle.Fill
    Vous permettra de dire que votre panel prendra toujours la taille de son contrôle parent. (votre form par exemple).
    Ensuite vous jouez avec vos différents contrôles et leur dock (pensez à mettre du premier plan ou arrière plan afin de choisir qui à la priorité.)

    Voila pour ce qui est des différentes parties de la forme.
    A voir comment gérer les contrôles enfant (textebox and co).

    Je vous conseille également de mettre une taille minimum à votre form.

    A+

  3. #3
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut Bonjour
    Bonjour,

    Le mieux en .NET, de mon point de vue est d'utiliser un ou plusieurs TableLayoutPanel.

    C'est un contrôle transparent qui correspond à un tableau où tu peux y mettre x colonnes et x lignes.
    Tu mets ce contrôle en Dock=Fill sut ta form pour qu'il remplisse tout l'espace (ou sur une partie, dans un panel par exemple)

    Après tu mets tes contrôles, un par case, et eux même, tu mettre leur Dock à Fill pour qu'il remplisse leur case.

    Le résultat de tout ça, c'est que lorsque tu redimensionnes ta Form, la TableLayout Panel va garder ses proportion en se redimensionnant, et va redimensionner tout les contrôles qui remplissent leur case.


    Ca demande un peu de pratiques et de petites astuces pour avoir exactement le rendu qu'on veut, mais une fois qu'on a compris on peut tout faire.
    Comme astuces il y a par exemple :

    - les colonnes (ou les lignes) peuvent avoir une taille fixe ou en pourcentage.
    Donc par exemple, tu peux avoir une ligne fixe au dessus pour mettre un menu, et une ligne qui fait 100% du reste en dessous.
    Ainsi quand tu redimensionnes ta form, seul la partie basse va se redimensionner.

    - Un control peut occuper l'espace de plusieurs ligne et plusieurs colonnes (RowSPan et ColumnSpan)

    - tu peux indiquer la taille minimum du TableLayoutPanel, se sera la limite que l'utilisateur ne pourra pas dépasser.

    Voilà voilà.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Merci Mactwist pour avoir attiré mon attention sur le TableLayoutPanel. C'est formidable ce contrôle
    Kropernic

  5. #5
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Pour moi, ça a été une révolution.

    Il est un peu pénible des fois, quand on déplace les contrôles (il vaut mieux enlever le Dock=Fill du contrôle)

    Il vaut mieux aussi que le tablelayout panel soit "le fond entier" de la form.
    Car on pourrait vouloir mettre un panel en haut et en bas et un TableLayoutPanel au milieu, mais il faudra jouer avec les positions verticales (Top etc...), sinon il passe en dessous ou au dessus des autres controles etc... Il vaut mieux créer une ligne en plus en haut et en bas, et remlir la ligne par les panels.

    Pour rendre plus jolie aussi, on peu supprimer les marges automatiques (ça peut aider).

    Et quoi qu'il en soit, il faut toujours qu'au minimum une colonne et une ligne aient leurs dimensions en % et non en dur. Sinon plus d'intérêt.

    Ah oui et aussi quand on gère les tailles en %, il ne recalcule pas les % à la volée, seulement quand on sauvegarde.
    Donc si on mets 80% sur la première ligne puis 50% sur la deuxième, il accepte et recalcule,quand on revient, se sera 65% et 35% pour faire 100%.
    Du coup... si on veut trois lignes avec les même pourcentages, il suffit de mettre 50% dans chacune d'elles, et c'est bon. Quand on revient, il y aura 33.33 dans chacune d'elle. (Ca évite de se prendre la tête pour rien.)
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/04/2013, 08h34
  2. Récupérer les informations d'un contrôle dans un formulaire
    Par SoftAbdou dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/06/2009, 13h12
  3. les contrôles dans un formulaire dynamique
    Par rinuom99 dans le forum Langage
    Réponses: 2
    Dernier message: 01/04/2008, 17h52
  4. Réponses: 13
    Dernier message: 24/11/2006, 14h31
  5. Réponses: 1
    Dernier message: 27/10/2004, 15h36

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