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 :

[VS2005] Optimisation affichage d'un formulaire


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 135
    Points : 61
    Points
    61
    Par défaut [VS2005] Optimisation affichage d'un formulaire
    Bonjour,

    Je dispose d'un formulaire qui contient un grand UserControl (700x1800). Le UserControl est 'autoscroll = true' ; le probleme est que lorsque je remonte avec la barre de défilement, il y a un défaut de fluidité (cf PJ)

    J'ai essayé d'ajouter le code suivant dans le constructeur du UserControl et même dans celui du formulaire sans résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    this.SetStyle(ControlStyles.UserPaint, true); 
    this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
    this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
    Auriez-vous une suggestion ?
    Images attachées Images attachées  

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Salut,

    Concernant ton problème, je pense que tu es sur la bonne voie, pour moi il faut activer le double buffer.

    A mon avis, tu l'as fait sur le usercontrol, mais celui-ci semble contenir des group. Donc regarde pour aussi activer le double buffer sur les groups, peut-être que cela corrigera ton problème.

    Bon courage

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    Si par "group" tu veux dire "UserControl", j'en avais effectivement dans une première version, puis constatant ce défaut, j'ai décidé de faire un test en les enlevant tous, par conséquent, il n'y a plus qu'un seul "UserControl" contenant plusieurs "System.Winforms.Panel" contenant des "System.Winforms.GroupBox" ; et les double buffer du "UserControl" et du formulaire accueillant le "UserControl" sont activés.

    Je sens que ce probleme va me donner du fils a retordre.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Essaye d'activer le double buffer également sur les panel et les groupbox également

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    La methode 'SetStyle()' n'est pas visible sur les "Panel" et les "Groupbox". J'ai alors créé des controls hérités en surchargeant le constructeur pour définir le style
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    /// <summary>
    /// Class description here.
    /// </summary>
    public class Panel : System.Windows.Forms.Panel
    {
     
        #region Constructors
     
        /// <summary>
        /// Initializes a new instance of the <see cref="Panel" /> class.
        /// </summary>
        public Panel()
        {
            InitializeStyle();
        }
     
        #endregion
     
        #region Methods
     
        public void InitializeStyle()
        {
            this.SetStyle(System.Windows.Forms.ControlStyles.OptimizedDoubleBuffer, true);
            this.SetStyle(System.Windows.Forms.ControlStyles.UserPaint, true);
            this.SetStyle(System.Windows.Forms.ControlStyles.AllPaintingInWmPaint, true);
        }
     
        #endregion
     
    }
     
    /// <summary>
    /// Class description here.
    /// </summary>
    public class GroupBox : System.Windows.Forms.GroupBox
    {
        #region Constructors
     
        /// <summary>
        /// Initializes a new instance of the <see cref="GroupBox" /> class.
        /// </summary>
        public GroupBox()
        {
            InitializeStyle();
        }
     
        #endregion
     
        #region Methods
     
        public void InitializeStyle()
        {
            this.SetStyle(System.Windows.Forms.ControlStyles.OptimizedDoubleBuffer, true);
            this.SetStyle(System.Windows.Forms.ControlStyles.UserPaint, true);
            this.SetStyle(System.Windows.Forms.ControlStyles.AllPaintingInWmPaint, true);
        }
     
        #endregion
    }
    Puis remplacé les controls "System.Windows.Forms" par ceux-ci ; mais rien ne change, j'ai toujours mon probleme de refresh sur le scroll vers le haut.

Discussions similaires

  1. VBA affichage par défault formulaire unique
    Par hocine dans le forum Access
    Réponses: 3
    Dernier message: 04/01/2006, 11h50
  2. Probleme d'affichage d'un formulaire tabulaire
    Par gui38 dans le forum Access
    Réponses: 5
    Dernier message: 04/11/2005, 13h23
  3. Pb d'affichage de sous formulaire
    Par Didi17 dans le forum Access
    Réponses: 7
    Dernier message: 28/10/2005, 03h48
  4. Réponses: 6
    Dernier message: 19/05/2005, 11h06

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