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 :

Mise à jour controle qui ne se fait pas


Sujet :

C#

  1. #1
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 013
    Points
    2 013
    Par défaut Mise à jour controle qui ne se fait pas
    Bonjour

    Je croyais avoir compris que l'on ne pouvait pas accèder à un contrôle depuis un autre thread ou que la mise à jour ne se faisait pas s'il y avait blocage du thread et du coup là je ne pige pas le soucis

    je fais ceci
    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
    private void btTest_Click(object sender, EventArgs e)
            {
                Stopwatch stopWatch = new Stopwatch();         
                stopWatch.Reset();                             
                stopWatch.Start();                             
     
                if (VerificationSiAuMoinsUnParametreCoche() == 0) 
                {
                    chartMonotone.Series.Clear();              
                    MessageBox.Show("Il faut sélectionner au moins un paramètre dans l'arborescence !", "Affichage impossible", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                else 
                {
                    GenererMonotonesAsync();
                }
     
                stopWatch.Stop(); //## arret du chronometre
                toolStripStatusLabel1.Text = "Mise à jour en : " + stopWatch.ElapsedMilliseconds.ToString() + "ms
            }
    C'est à dire un gros traitement s'il y a des courbes sélectionnées dans un treeview et effacement d'un MSchart + message s'il y en a aucune de sélectionné.

    Problème, la ligne chartMonotone.Series.Clear(); ne fait absolument rien alors que je suis bien dans le bon thread, que l'ihm n'est pas bloquée...je ne comprends pas
    j'ai essayé d'ajouter un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.DoEvents() ;
    qui me semblait pourtant inutile et même avec ça ça ne change rien...comprends pas.

    merci par avance pour votre aiguillage
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  2. #2
    Expert éminent 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
    Points : 7 903
    Points
    7 903
    Par défaut
    Ajouter : chartMonotone.Invalidate() ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 013
    Points
    2 013
    Par défaut
    Bonjour

    Super ca tourne avec ca mais je ne comprends pas ce que je fais

    Pourquoi n'ai je jamais eu besoin de faire ca avant ? (le serie.clear() faisait le job)

    Que signifie le
    nvalide la surface totale du contrôle Chart
    ? Le redessin je comprends mais l'invalidation, non

    Merci
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  4. #4
    Expert éminent 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
    Points : 7 903
    Points
    7 903
    Par défaut
    D'après la documentation, je ne vois pas trop la différence entre "Invalidate()" et "Refresh()".
    Je n'ai pas proposé le Refresh() car, en cas de problème, c'est rarement la solution.

    Normalement le Series.Clear() devrait générer un nouveau tracé, le rendu sur la form pouvant être décalé dans le temps.
    Mais, à priori, j'aurai aussi pensé qu'un DoEvents() aurait suffi.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. Avast - Mise à jour qui ne se fait pas
    Par Daejung dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 04/06/2012, 11h08
  2. [1.x] Mise à jour de champ created_at qui ne se fait pas
    Par jejeman dans le forum Symfony
    Réponses: 4
    Dernier message: 08/07/2009, 16h04
  3. Formulaire, mise à jour controle
    Par lawokgluot dans le forum Access
    Réponses: 4
    Dernier message: 03/07/2006, 17h01
  4. Test qui ne se fait pas
    Par GLDavid dans le forum Linux
    Réponses: 12
    Dernier message: 07/03/2006, 14h57
  5. Pb de selection qui ne se fait pas
    Par Stef.proxi dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/08/2004, 10h54

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