Pb effet winform

Résolu
SfyLer Messages postés 38 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 31 décembre 2006 - 28 mars 2006 à 15:18
SfyLer Messages postés 38 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 31 décembre 2006 - 28 mars 2006 à 16:16
Voila j'aimerais mettre deux trois effet sur ma form dont celui d'aparaitre peu à peu sof que le fait d'utiliser ma methode sa rend vraiment bof, le thread bloque l'appli du coup on dirait que le logiciel plante :)

f.Hide();
f.Opacity = 0;
double TMP = 1.0;
f.Show();
while (f.Opacity != 1)
{
f.Opacity = 1.0 - TMP;
Thread.Sleep(50);
TMP -= 0.1;
}

c'est a cause du thread.sleep, si quelqu'un a une autre idée je suis preneur

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
28 mars 2006 à 16:13
Quelque chose comme ça :

public partial class Form1 : Form
{
Timer t = null;


public Form1( )
{
InitializeComponent( );


this.Opacity = 0.0;
}


protected override void OnLoad( EventArgs e )
{
base.OnLoad( e );


t = new Timer( );
t.Interval = 50;
t.Tick +=new EventHandler( Timer_Tick );
t.Start( );
}


void Timer_Tick( object sender, EventArgs e )
{
if ( this.Opacity < 1.0 )
{
this.Opacity += 0.05;
}
else
{
t.Stop( );
t.Dispose( );
}
}
}
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
28 mars 2006 à 15:31
Salut, utilises un System.Windows.Forms.Timer dans l'évènement Form.Load.
0
SfyLer Messages postés 38 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 31 décembre 2006
28 mars 2006 à 15:40
c'est ce que j'ai fait
avec ensuite un f.compteur.enabled=true;
et le timer en 1000ms mais sa marche pas, tu sais d'ou sa peux venir ?
0
SfyLer Messages postés 38 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 31 décembre 2006
28 mars 2006 à 16:16
ok sa ma l'air tout bon, merci
0
Rejoignez-nous