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 avoir une scrollbar horizontale sur un FlowLayoutPanel ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut Comment avoir une scrollbar horizontale sur un FlowLayoutPanel ?
    Bonjour,

    Je travaille sous vs 2008, type d'application windows.

    J'utilise un "FlowLayoutPanel" pour afficher des images sous la forme d'une pellicule.
    Je rempli mon controle "FlowLayoutPanel" (flpAffPel) en ajoutant dynamiquement des picturebox (pbFic) contenant une image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    flpAffPel.FlowDirection = FlowDirection.LeftToRight;
    flpAffPel.AutoScroll = true;
    for (int i = 0; i < dgvChercher.Rows.Count; i++)
    {
      PictureBox pbFic = new PictureBox();
      pbFic.Load(dgvAffPellicule.Rows[i].Cells[6].Value.ToString() + dgvAffPellicule.Rows[i].Cells[1].Value.ToString());
      pbFic.Size = new Size(255, 255);
      pbFic.SizeMode = PictureBoxSizeMode.Zoom;
      flpAffPel.Controls.Add(pbFic);
    }
    Je positionne AutoScroll à vrai pour avoir une barre de défilement.
    Mais celle-ci apparaît verticalement (et déplace l'ensemble des images verticalement),
    alors que je souhaiterais une barre de défilement horizontale pour faire défiler mes images horizontalement (comme pour une pellicule)

    Comment puis-je configurer le FlowLayoutPanel pour avoir une barre de défilement horizontale, et un déplacement horizontal de mes images ?
    Peut-être un autre contrôle ?

    Merci de votre attention,
    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  2. #2
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 201
    Par défaut
    Il faut mettre la propriété HScroll = true .
    Voila pour t'aider sinon
    http://msdn.microsoft.com/en-us/libr...roperties.aspx

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Par défaut
    A mon avis c'est surtout dû au fait que le flowlayoutpanel s'arrange pour que tous ses contrôles enfants "rentrent" dans l'espace horizontal, donc tu n'auras jamais un contrôle qui débordera du panel, et donc tu n'auras jamais besoin de scrollbar. S'il dépasse, le panel va le déplacer à la ligne du dessous.

    Si par contre tu changes l'orientation du panel, là tu aurais la scrollbar horizontale et pas la verticale

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Citation Envoyé par chaminette Voir le message
    Il faut mettre la propriété HScroll = true .
    ...
    La propriété HScroll n'existe pas pour le controle "FlowLayoutPanel".
    Erreur 1 Impossible d'accéder au membre protégé 'System.Windows.Forms.ScrollableControl.HScroll' par l'intermédiaire d'un qualificateur de type 'System.Windows.Forms.FlowLayoutPanel' ; le qualificateur doit être de type 'awfReferencePIF.UI.frmDemarrage' (ou dérivé de celui-ci)
    Citation Envoyé par zoubidaman Voir le message
    A mon avis c'est surtout dû au fait que le flowlayoutpanel s'arrange pour que tous ses contrôles enfants "rentrent" dans l'espace horizontal, donc tu n'auras jamais un contrôle qui débordera du panel, et donc tu n'auras jamais besoin de scrollbar. S'il dépasse, le panel va le déplacer à la ligne du dessous.

    Si par contre tu changes l'orientation du panel, là tu aurais la scrollbar horizontale et pas la verticale
    C'est ce que je penser faire avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flpAffPel.FlowDirection = FlowDirection.LeftToRight;
    mais j'avais la barre de défilement verticale.

    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flpAffPel.FlowDirection = FlowDirection.TopDown;
    Là j'ai la barre de défilement horizontale.
    Un peu ambigu de dire direction "HautBas "pour avoir la barre de défilement horizontale.

    Merci a vous,
    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Là j'ai la barre de défilement horizontale.
    Un peu ambigu de dire direction "HautBas "pour avoir la barre de défilement horizontale.
    Pas du tout. Si tu suis le raisonnement que je t'ai donné, tu t'apercevras que la scrollbar verticale n'a pas plus lieu d'être pour un FlowLayoutPanel en TopDown qu'une scrollbar horizontale pour un Panel en LeftRight.

    A quoi bon afficher une scrollbar qui ne servira à rien du tout puisque le panel s'arrange pour qu'il n'y en ait pas?

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Citation Envoyé par zoubidaman Voir le message
    Pas du tout. Si tu suis le raisonnement que je t'ai donné, tu t'apercevras que la scrollbar verticale n'a pas plus lieu d'être pour un FlowLayoutPanel en TopDown qu'une scrollbar horizontale pour un Panel en LeftRight.
    C'est ce qui me semblait, (d'ou ma question initiale)
    D'ailleur l'aide explique
    FlowDirection indique la direction de positionnement consécutif de contrôles dans le panneau
    mais il n'en reste pas moins que lorsque je met "LeftToRight" j'ai la barre de défilement verticale, et lorsque je met "TopDown" j'ai la barre de défilement horizontale.

    Citation Envoyé par zoubidaman Voir le message
    A quoi bon afficher une scrollbar qui ne servira à rien du tout puisque le panel s'arrange pour qu'il n'y en ait pas?
    J'ai 17 images et le "FlowLayoutPanel" n'en affiche que 6. Je veux donc forcer la barre de défilement horizontale pour pouvoir accéder aux autres. (faire une visu "pellicule")
    Ce qui fonctionne avec "FlowDirection.TopDown".

    Tu indiquais qu'il faut changer l'orientation du panel, je veux bien, mais je ne sais pas comment faire. (mais bon ma visu pellicule fonctionne)
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

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

Discussions similaires

  1. comment avoir une simulation continue sur simulink
    Par anasmarjani dans le forum Simulink
    Réponses: 1
    Dernier message: 26/02/2015, 23h42
  2. Comment avoir une connexion internet sur pc portable via un ipad
    Par deubelte dans le forum Dépannage et Assistance
    Réponses: 4
    Dernier message: 15/11/2012, 09h46
  3. [phpMyAdmin] Comment avoir une table triée sur un critère automatiquement ?
    Par bluemanca dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/05/2012, 11h11
  4. Comment avoir une règle millimétrée sur une form
    Par jougjo dans le forum Visual Studio
    Réponses: 0
    Dernier message: 07/06/2010, 17h38

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