Comment deplacer un textbox

cs_ka3boul Messages postés 1 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 30 mai 2008 - 30 mai 2008 à 20:29
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 - 5 juin 2008 à 18:37
salut
bon je travail sur un petit projet de présentation d'algorithme de tri
donc je suis amené a montrer la permutation des éléments d'un tableau representé par des textbox
et donc à un certain niveau j'ai saisi le code suivant pour l'algorithme de tri sélection:
- tx : textbox temporaire qui présentera le deplacement de la positon j -> la postion i

 for (i= 0;i<nb_elments -1 ;i++)
           {
              for ( j=i+1;j<nb_elments ;j++)
              {
                  if (liste[i] > liste[j])
                    {           
                           tx.Text = liste[j].ToString ();
                           tx.BackColor = System.Drawing.Color.Blue;
// Déplacement    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);
                               System.Threading.Thread.Sleep(3) ;//une façon ratée pour realiser une pause
                           }                       
                          aux = liste[i];
                           liste[i] = liste[j];
                           liste[j] = aux;
                           groupe[i].Text = liste[i].ToString();
                           groupe [j].Text= liste[j].ToString();                          
                       }                                             
                   }               
              }
   

j'ai essayé d'utiliser une boucle vide a la place de Sleep mais dans les 2 cas je suis tombé sur un pb bizarre
au lieu que le text se depalce petit à petit,  les temps d'attentes s'accumilent et donc il ya un delai d'attente assez enorme suivai d'un depalcement instantané des tous les textbox pour realiser le tri (donc je ne voit pas d'animation)

alors ya pas de suggestion SVP?

2 réponses

gbourgeois0019 Messages postés 152 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 2 juin 2008 1
31 mai 2008 à 01:37
Je crois qu'il faudrait que tu utilise soit des timers pour pas que l'application soit gelée .. ou sinon tu fait un thread séparé qui gèrerait tout sa mais la ca va etre plus complexe car les textbox auront pas été crés par ce thread et tu va donc avoir besoin de delegates .. donc la solution 1 serait plus simple je crois ..

Le problème avec les sleeps c'est que l'application gèle pendant le sleep et on ne voit pas le rafraichissement du Form.

En espérant que cela va t'aider :)

Guillaume.

________________________________________________________________________
Hardware is what we play with until it breaks, Software is what we play with until it works !
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
5 juin 2008 à 18:37
System.Threading.Thread.Sleep(3)
; --> ca ne fait que rendre la main du thread courant pendant 3 secondes....
Essaye plutot un application.doevents(); a la place!
0
Rejoignez-nous