Le fonctionnement dans Pic.location

dawnprojekt Messages postés 1 Date d'inscription samedi 19 décembre 2009 Statut Membre Dernière intervention 13 février 2010 - 13 févr. 2010 à 09:45
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 15 févr. 2010 à 09:59
Bonjour,

Est ce qu'une âme charitable pourrait m'aiguiller sur l'utilisation de Location pour faire bouger une petite PictureBox dans une fenêtre
.J arrive à lui faire prendre une position dans une form mais elle ne bouge pas.... enfin voici le code en question :


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace Papillon
{
public partial class frmExo3 : Form
{

public frmExo3()
{
InitializeComponent();
timPapillon.Start();

bool ouvert = true;
int i = 600;
int x = 0 ;
int y = 100;

while (i>0)
{
pictPapillon.Location = new Point(x, y);
x++;
y--;
i--;

}
}

private void timPapillon_Tick(object sender, EventArgs e)
{
if (ouvert)
{
this.pictPapillon.Image = Image.FromFile(@"k:/papGDBH.bmp");
ouvert = false;
}
else
{
this.pictPapillon.Image = Image.FromFile(@"k:/papfermeGDBH.bmp");
ouvert = true;
}

}


}
}


Merci par avance ...

1 réponse

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 50
15 févr. 2010 à 09:59
Salut

Il ne faut pas mettre ton changement de position dans un while : en fait l'actualisation de ta fenêtre ne prend pas le pas sur le reste du code. Elle n'est faite que quand ton programme ne fait plus rien. De plus, en faisant un tel while, tu ne sais pas du tout combien de temps ça prendra. Il est capable de ta faire la boucle complète certainement en moins de quelques millisecondes.

Il vaut mieux utiliser un timer (très court), qui, à chaque tick, bouge l'image. Là, l'interface graphique sera actualisée.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0