Probleme de définition de variable

Résolu
tiju50 Messages postés 14 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 10 septembre 2004 - 25 juil. 2004 à 16:23
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 26 juil. 2004 à 11:48
Comme je suis débutant, J'ai voulu créer une petite application Windows pour essayer et découvrir quelques possibilités en Csharp.

Grâce à mon école, je dispose gratuitement de VS studio .net et de msdn library mais je n'arrive pas à trouver la solution à mon probleme avec l'aide....

Mon application Windows Form comprend un menu (Fichier, Options, ..etc..) un bouton, une barre d'état, et un timer.
J'aimerais en cliquant dans un élément du menu déclencher le timer, afficher le temps qui passe dans la barre d'état et pouvoir arrêter le tout en cliquant sur le bouton.

Voici le code que j'ai tapé (désolé pour la mise en page mais j'arive pas à utiliser l'outil du forum "afficher du code sur un fond grisé" ;-P ) :

public void menuItem1_1_Click(object sender, System.EventArgs e)
{
DateTime timeStart = DateTime.Now;
timer1.Enabled = true;
}

public void button1_Click(object sender, System.EventArgs e)
{
timer1.Enabled = false;
}

public void timer1_Tick(object sender, System.EventArgs e)
{
DateTime timeNow = DateTime.Now;
TimeSpan diffTime = timeNow.Subtract(timeStart);
statusBar1.Text = diffTime.ToString();
}

Voici l'erreur que je reçois :
" Le nom 'timeStart' n'existe pas dans la classe ni dans l'espace de noms 'essai_graphique.Form1' "

et cela concerne la ligne " TimeSpan diffTime = timeNow.Subtract(timeStart); "

Est-ce que quelqu'un aurait la solution à ce problème, histoire que je puisse avancer dans mon apprentissage.

Merci d'avance

5 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
25 juil. 2004 à 22:37
bon je vais partir du principe que ton Form porte le nom de Form1

public class Form1 : System.Windows.Forms.Form
{
...
// déclaration du DateTime timeStart en tant que champ private de la classe Form1
private DateTime timeStart;
...
public void menuItem1_1_Click(object sender, System.EventArgs e)
{
timeStart = DateTime.Now;
timer1.Enabled = true;
}

public void button1_Click(object sender, System.EventArgs e)
{
timer1.Enabled = false;
}

public void timer1_Tick(object sender, System.EventArgs e)
{
DateTime timeNow = DateTime.Now;
TimeSpan diffTime = timeNow.Subtract(timeStart);
statusBar1.Text = diffTime.ToString();
}
}


ainsi timeStart est accessible à toute méthode de la classe

Cocoricoooooooo !!!!
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
25 juil. 2004 à 16:44
timeStart est déclaré dans ta methode menuItem1_1_Click, et donc détruit à la fin de celle-ci
il vaut mieux que tu la déclare comme membre de la classe si tu veux y avoir acces depuis une autre methode de cette classe, et ton code devient alors :

public void menuItem1_1_Click(object sender, System.EventArgs e)
{
timeStart = DateTime.Now;
timer1.Enabled = true;
}


PS : pour le code tu cliques juste sur le bouton de la barre d'outils et tu met ton code entre les 2 balises "CODE" qui sont insérées

Cocoricoooooooo !!!!
0
tiju50 Messages postés 14 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 10 septembre 2004
25 juil. 2004 à 21:13
Tout d'abord merci de t'intéresser à mon problème.

Mais je ne vois pas trop le changement à effectuer ds le code, à part le DateTime enlevé devant ma variable timeStart.

J'ai quand meme effectué cette modif pour voir si ca changeait quelque chose : résultat je me retrouve avec 2 fois la meme erreur, une fois dans la ligne :

timeStart = DateTime.Now;
"

et une autre fois dans la meme ligne qu'avant :

TimeSpan diffTime = timeNow.Subtract(timeStart);


Est-ce que ce tu vois ce qui faudrait faire pour que ca fonctionne?

PS: On dirait que ca marche le code sur fond gris (je devai avoir un bug pour mon premier message parce que les balises CODE n'apparaissait pas quand je cliquais sur le bouton)

- Le débutant en programmation a encore un problème - Aidez moi siouplé !!!!
0
tiju50 Messages postés 14 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 10 septembre 2004
26 juil. 2004 à 11:43
Merci beaucoup !!!

Ca marche nickel.

sinon je suis désolé de t'avoir déranger une fois de plus mais j'avais pas compris ce que tu avais mentionné avant ce dernier message. Je commence juste à programmer en c# et donc j'y connais pas grand chose... pour l'instant j'espère.

- Le débutant en programmation a encore un problème - Aidez moi siouplé !!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 juil. 2004 à 11:48
pas de probleme
tout le monde a debuter un jour :)

Cocoricoooooooo !!!!
0
Rejoignez-nous