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 :

Désactiver actualisation visuelle de la Form


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut Désactiver actualisation visuelle de la Form
    hello,

    je cherche à désactiver temporairement la mise à jour de l'affichage de ma form, pendant qu'elle est en train de faire un traitement, pour réduire le temps de réponse.
    Un peu comme displayupdating = false en VB.
    Je croyais que c'était SuspendLayout, puis ResumeLayout, mais ca ne fonctionne pas. J'ai pu lire que parfois ca ne marchait pas, mais pour des raisons inconnus..
    Connaissez-vous un moyen de gérer ce problème? ou un autre moyen de "mettre-en-pause" l'actualisation de ma form ?

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Essaye en créant un Panel (Dock=Fill) contenant tous les composants de la Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Avant le début du traitement
    MyPanel.parent=false ;
    // traitement
    ...
    // Après la fin du traitement
    MyPanel.Parent=MyForm ;
    Et pour faire joli si ca marche, mettre un petit label Traitement en cours en arrière plan du panel sur la form.

  3. #3
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut
    salut
    merci pour ta proposition,
    j'avais essayé un truc similaire, je rendais invisible l'un des composant les plus général, et ca me donnait un rendu à peu près identique, quoique ta solution semble aller encore plus vite.
    Mais comment se fait-il que suspend layout ne fonctionne pas, que ca soit sur myForm ou sur un compsant fils? Peut être que c'est mon PC qui est juste très lent..
    Je garde ta solution en attendant

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    slut

    sinon, dans l'api Win32, tu as une fonction Freeze qui permet de géler
    le raffraichissement

    Un tour sur allapi.net ou pinvoke.com et ca devrait le faire facilement

  5. #5
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par maVariable Voir le message
    je cherche à désactiver temporairement la mise à jour de l'affichage de ma form, pendant qu'elle est en train de faire un traitement, pour réduire le temps de réponse.
    Si t'as un traitement long à faire, fais le en asynchrone (avec le BackGroundWorker, par exemple). Comme ça le thread de ta fenêtre sera toujours dispo et n'aura aucun problème à la peindre.

  6. #6
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut
    salut,
    merci pour vos réponses,
    je cherche du coté de l' API pour l'instant, mais je ne trouve pas la fonction FREEZE que tu propose.. Je continue.
    L'idée des threads est sympa aussi, je vais me pencher dessus, mais j'avoue pour l'instant que je ne pensais pas consacrer trop de temps à ce problème. Ca sera donc en fonction de mon planning
    Je vous tiens au courant

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    eventuellemnet, ce lien : Freeze Window

    ou bien ici :

    LockWindowUpdate

    Voilà...

  8. #8
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut
    salut,
    désolé j'ai été un peu long, j'avais mis ca entre parenthèse, mais ca y est j'ai pu le mettre en place grace à ton dernier lien, ca marche pas mal, j'ai rajouté une petite progressBar sympathique mais je vais devoir faire valider cette méthode par l'équipe
    Je reviendrai mettre le flag à résolu
    merci pour ton aide

    ps : il n'empèche, je suis curieux de savoir pourquoi le suspendLayout ne marche pas

  9. #9
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut
    La méthode est acceptée, donc c'est tout bon pour moi
    Encore merci

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

Discussions similaires

  1. Actualiser affichage d'une form
    Par Mini-Tyson dans le forum C#
    Réponses: 4
    Dernier message: 22/02/2012, 19h58
  2. [AC-2007] Désactiver un bouton dans un form par lui même ?
    Par Dixies dans le forum IHM
    Réponses: 4
    Dernier message: 16/02/2011, 19h34
  3. désactiver les textbox d'un form
    Par reedy dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/11/2010, 16h10
  4. [Débutant][forms 6i] désactivation d'item
    Par Magnus dans le forum Forms
    Réponses: 6
    Dernier message: 18/07/2008, 14h56
  5. [E-00] TCD Actualiser Séries Mise en forme
    Par manu789 dans le forum Excel
    Réponses: 1
    Dernier message: 11/06/2008, 19h22

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