Le fonctionnement dans Pic.location

Signaler
Messages postés
1
Date d'inscription
samedi 19 décembre 2009
Statut
Membre
Dernière intervention
13 février 2010
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
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

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
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é. -