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 :

comment animer un control


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Par défaut comment animer un control
    bon je doit faire une demonstration sur les algorithmes de Tri
    et donc pour le tri sélection par exemple je doit Montrer la permutation entre un elment liste[i] et liste [j] on me servant d'un textbox tx qui se déplace de la position j ->i (le tableau est representé par un ensemble de texte box)

    pour controler la vitesse de l'anim je me suis servit de 2 idée:
    - une boucle vide pour tuer le temps
    - thread.Sleep
    mais malheresment ca n'a pas marché comme il faut dans les 2 cas :


    Code c# : 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
    if (liste[i] > liste[j])
                       {
     
                           {                           
                               tx.Text = liste[j].ToString ();
                               tx.BackColor = System.Drawing.Color.Blue;                                                                
                               tx.Location = new System.Drawing.Point(20 + 28 * j, 70);
                               tx.Size = new System.Drawing.Size(20, 20);
                               groupBox1.Controls.Add(tx);
                               for (int k = 20 + 28 * j; k > 20 + 28 * i; k=k-10)
                               {
                                   tx.Location = new System.Drawing.Point(20 + 28 * k, 50);  // movement de textbox tx
                                   System.Threading.Thread.Sleep(3);
                               }
                               aux = liste[i]; 
                               liste[i] = liste[j];
                               liste[j] = aux;
                               groupe[i].Text = liste[i].ToString();  (permutation dans les textebox affichés)
                               groupe [j].Text= liste[j].ToString(); 
     
                           }                                              
                       }

    le resultat est un tamps d'attente assez grand, suivi d'un tri instantané du tableau

    donc je ne comprends pas vraiment comment agir

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2004
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 304
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for (int k = 20 + 28 * j; k > 20 + 28 * i; k=k-10)
    {
        tx.Location = new System.Drawing.Point(20 + 28 * k, 50);  // movement de textbox tx
        this.Update();//ou this.Refresh();
        System.Threading.Thread.Sleep(300);
    }

  3. #3
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 184
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 184
    Par défaut
    Bonjour.

    Encore un sleep pour une animation ... ca me rend perplexe.

    Pourquoi ne pas utiliser un bête Timer ?

    Cdt.

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Par défaut
    merci pour vos reponses, ça m'a sauvé la vie ou presque (j'ai encore des lacunes u peu partout



    Citation Envoyé par olsimare Voir le message
    Bonjour.

    Encore un sleep pour une animation ... ca me rend perplexe.

    Pourquoi ne pas utiliser un bête Timer ?

    Cdt.
    ben tout simplement car je suis nouveau au C# et ça fai t3 ans que je n'ai pas programmé et je n'ai pas l'habitude d'utiliser les animation des formulaires

    je me débrouille juste avec des connaissance anciennes + les exemples que je trouve un peu partout


    toutefois si tu peux me présenter un lien d'u petit exemple CLair sur le timer je serais vraiment très reconnaissant

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/09/2006, 16h47
  2. [VB.Net]Comment recuperer un Control par le Type et le nom ?
    Par Golzinne dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/12/2005, 11h10
  3. comment créer son controle et l'utiliser
    Par bajazet dans le forum MFC
    Réponses: 2
    Dernier message: 02/12/2005, 00h45
  4. Comment animer sous opengl ?
    Par AsmCode dans le forum OpenGL
    Réponses: 4
    Dernier message: 17/10/2005, 12h32
  5. comment faire un controle de transaction ???
    Par Oxygene dans le forum Oracle
    Réponses: 4
    Dernier message: 22/02/2005, 15h04

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