none
Améliorer performance affichage User Controle RRS feed

  • Question

  • Bonjour à tous,

    La forme principale de mon application contient un TableLayoutPanel qui comporte 1 Colonne et 5 lignes.

    Dans chacune des lignes j’ ai des contrôles ou contrôles utilisateurs.

    En fonction de ce que je veux afficher, je cache ou fais apparaître les lignes du TableLayoutPanel.

    L’un des contrôles utilisateur dispose d’une dizaine de textBox, de labels et de boutons.

    C’est l’affichage de ce contrôle qui pose problème. Il apparaît de façon saccadée ce qui n’est pas esthétique.

    Existe-t-il un moyen pour améliorer les performances d’affichage des contrôles utilisateurs ?

    Merci pour votre aide.

    lundi 11 mai 2015 06:42

Réponses

  • Bonjour,

    J’ai finalement trouvé la solution pour améliorer l’affichage de mon application de la manière suivante :

    J’ajoute mon principale UserControl (celui qui avait du mal à s’afficher) de façon dynamique ex : monTableLayoutPanel.Controls.Add(UserControl). Il est ajouté uniquement sur le tab actif. Pour les 2 autres tabs, ils sont ajoutés seulement lorsque l’on sélectionne le tab.

    En espérant que cela puisse en aider d’autres.

    Merci à tous pour votre aide

    • Marqué comme réponse paintbox00 lundi 18 mai 2015 21:04
    lundi 18 mai 2015 18:45

Toutes les réponses

  • Bonjour paintbox00,
    Pouvez-vous partager une capture d'écran de ce contrôle?

    Cordialement,
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 12 mai 2015 06:02
    Modérateur
  • Bonjour Nina,

    merci pour votre aide. Voici des visuels de mon application : Images Ici

    La form1 est mon application qui contient un TableLayoutPanel à 5 rows et 1 column.

    En fonction des étapes dans mon application, je cache ou rend visible certaines rows.

    La 5e row contient le User Control qui s'affiche de façon saccadée. 

    L'image UserConttol est le user control.

    Je crois que pour améliorer l'affichage, je devrais supprimer les 5 rows de TableLayoutPanel et ajouter mes controls de façon dynamique.

    Je n'ai pas encore essayé.

    Merci pour votre aide.


    mardi 12 mai 2015 16:43
  • En effet ce n'est pas la méthode la plus adaptée :
    Privilégiez des UserControl correspondant à chaque étapes de votre application et affichez uniquement l'actuel dans un Panel.

    En plus d'améliorer les performances vous structurez votre application et les modifications/mise à jour sont plus aisée.

    Cordialement.

     

    • Modifié Apyn AOM mardi 12 mai 2015 17:09
    mardi 12 mai 2015 17:07
  • Bonjour Apyn,

    précision, j'utilise bien plusieurs UserControl, un par étape et je les affiche dans le TableLayoutPanel.

    Merci pour votre aide.

    mardi 12 mai 2015 17:52
  • Oui en effet, mon conseil se pose sur l'utilisation d'un Panel et non d'un TableLayoutPanel pour afficher vos UserControl.

    Cordialement.
    • Modifié Apyn AOM mercredi 13 mai 2015 18:18
    mercredi 13 mai 2015 18:18
  • Bonsoir,

    Vous pouvez utiliser un TableLayoutPanel, mais préférez comme le dit paintbox00 de créer les userControl à la volée au lieu de les créer tous et de rendre visibles ou invisibles.

    Cordialement
    Gérard

    mercredi 13 mai 2015 19:45
  • Bonjour,

    J’ai finalement trouvé la solution pour améliorer l’affichage de mon application de la manière suivante :

    J’ajoute mon principale UserControl (celui qui avait du mal à s’afficher) de façon dynamique ex : monTableLayoutPanel.Controls.Add(UserControl). Il est ajouté uniquement sur le tab actif. Pour les 2 autres tabs, ils sont ajoutés seulement lorsque l’on sélectionne le tab.

    En espérant que cela puisse en aider d’autres.

    Merci à tous pour votre aide

    • Marqué comme réponse paintbox00 lundi 18 mai 2015 21:04
    lundi 18 mai 2015 18:45