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

Windows Forms Discussion :

Redimensionnement des Controls d'un Form


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 64
    Points : 50
    Points
    50
    Par défaut Redimensionnement des Controls d'un Form
    Bonjour,

    Je suis en train de coder une fonction qui va me permettre de redimensionner automatiquement tous les controles de mon WinForm.

    Sur le papier, je prend mon form de départ je calcule la taille avant et après d'un coté de mon form j'obtiens la formule suivante :
    taux_redimension = taille_finale / taille_initiale * 100

    Mon problème est comment récupérer ces 2 valeurs : taille_initiale et taille_finale car Me.Width et sender.Width ont la même valeur que ce soit dans ResizeBegin Resize ou ResizeEnd ...

    Une fois le taux calculé, il me restera plus qu'a parcourir tous mes controles pour les redimentionner.


    Merci d'avance !


    Ps : Si il existe une méthode plus simple intégrée au framework .NET je suis preneur aussi

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Magnifique réinvention de l'eau tiède !!!

    Blague à part, on est plus en VB6, et les propriétés Anchor et Dock ne sont pas faites pour les alligators.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    +1


    encore un qui se lance sans se documenter

    une des bible : http://plasserre.developpez.com/vsommair.htm


    comment savoir quel outil utiliser si on a pas regarder ce qu'il y a dans la caisse à outils et regarder à quoi chacun sert, et réinventer un marteau avec une pierre et un baton ca prend du temps et c'est moins bien
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    +1


    encore un qui se lance sans se documenter
    Y'a mieux aujourd'hui. T'as vu le poste du "phpeur" ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Je vais voir si je trouve mon bonheur avec Dock Anchor et le lien de Plasserre.
    Si jamais j'ai un problème je reposterai.

    Merci à vous.

    Bonne soirée !

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    T'as vu le poste du "phpeur" ?
    non mais je veux bien le lien
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    non mais je veux bien le lien
    http://www.developpez.net/forums/d70...-nom-variable/

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ah oui en effet réinventer le tableau de variable c'est pas mal non plus !
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    j'ai effectué quelques tests, et je me suis rapidement aperçu que la propriété Dock ne convenait pas (tous mes contrôles sont "accolés" au bord de mon Form.
    Je me suis donc tourné vers la propriété Anchor.

    J'ai donc affecté les 4 propriétés à mes controles c'est à dire :

    .Anchor = AnchorStyles.Top
    .Anchor = AnchorStyles.Left
    .Anchor = AnchorStyles.Right
    .Anchor = AnchorStyles.Bottom

    Mais j'ai un petit soucis : comment éviter que ces contrôles sortent de la partie visuelle de mon Form quand je le rétrécie ?

    Merci d'avance !

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Propriétés AutoSize à true et AutoSizeMode à GrowAndShrink

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    l'énum des ancrages utilisent les masques binaires qui permettent d'"additionner" les membres via or

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctrl.anchor = top or left or right
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Merci de vos réponses.

    Citation Envoyé par Bluedeep Voir le message
    Propriétés AutoSize à true et AutoSizeMode à GrowAndShrink
    J'ai défini Autosize sur mes controles et les 2 propriétés sur le Form Parent. Ca ne marche pas du tout ...
    La fenetre se dimensionne automatiquement quand elle n'est pas "maximized".
    Sans l'autosize sur mon Form le résultat est similaire, les contrôles sortent de l'écran ...

    Je pense que mon problème est plus compliqué que juste l'utilisation de anchor...
    En effet, je crée tous les controles de mon Form dynamiquement en fonction de la taille de l'écran.

    Merci

  13. #13
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par pounaid Voir le message
    En effet, je crée tous les controles de mon Form dynamiquement en fonction de la taille de l'écran.
    Ben, il aurait peut être fallu commencer par nous dire cela.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    l'ancrage permet que les controles se redimensionnent quand la fenetre se redimensionne

    en théorie on design une fenetre en assez petit en définissant les ancrages et au moins meme sur une grande résolution en agrandissant la fenetre, les controles s'agrandissent ou se déplace de manière à remplir l'espace en gardant une mise la forme voulue

    si tu créé tes controles dynamiquement à cause de la résolution, ne les créé pas dynamiquement du coup !

    si c'est pour des besoins de ton appli, instancie à la taille voulue comme tu le faisais puis met leur un ancrage par code, et le resize sera géré quand meme

    sinon il y a aussi des controles pour faire de la mise en page sans se poser trop de questions, flowlayoutpanel, tablelayoutpanel, splitcontainer ...
    sur certaines le dock peut etre utile
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Je vois bien la théorie, cependant la pratique ne suit pas vraiment...

    Je pense que mon problème vient du fait que je me base sur la résolution d'écran et non la taille de la fenetre ! Et que le Form est maximisé pour la génération des contrôles. Du coup seul le choix de réduire les composants existe... ce qui à mon avis bloque dans certains cas (par exemple : si la taille de la police d'écriture est supérieure à la hauteur du contrôle).

    Il faut donc que j'adapte mon code en fonction de la taille du Form...

    Ai je bien cerné la problématique ?

Discussions similaires

  1. Ordre d'affichage des control dans une form
    Par bipcpp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/12/2009, 20h08
  2. permettre a l utilisateur de redimensionner des controles
    Par atc666 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 08/09/2009, 03h22
  3. Redimensionnement des controls lorsqu'on agrandit le form
    Par steelidol dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/02/2009, 19h43
  4. [Listview]Ajout Name des controles d'une form dans une listview
    Par Roken62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/01/2009, 13h17
  5. [VB6] Comment boucler sur des controls d'un form ?
    Par lankviller dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/01/2003, 16h29

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