Controler automatiquement un textBox

Résolu
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011 - 9 mai 2011 à 13:22
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011 - 11 mai 2011 à 16:47
Bonjour,je suis débutante en c#.Je veux réaliser une fonction qui saisie le contenu d'un fichier texte dans un textBox en vérifiant le contenu du texte tous les 2 minutes.Lorsque la valeur saisi dans le textBox est égale à 1 une alarme va etre déclencher.
J'ai réussi à saisir le contenu du fichier texte dans un texteBox et losque elle égale à 1 une alarme est déclenchée.Mon problème c'est comment controler ce textBox chaque 2 minutes.Voici mon code:


using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;

namespace streamReader
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//Creating a new stream-reader and opening the file.
System.IO.StreamReader StreamReader1 = new System.IO.StreamReader(@"..//..//déclenche priorité//priorité.txt");

//Reading Line from file
string newLine;
while ((newLine = StreamReader1.ReadLine()) != null)


//Writing the read line to textBox
textBox1.AppendText(newLine);

//Close the file
StreamReader1.Close();
}






private void textBox1_TextChanged(object sender, EventArgs e)
{


if (textBox1.Text == "1")
{
SoundPlayer player = new SoundPlayer();
string chemin = "..//..//Sequences//alarme.wav";
player.SoundLocation = chemin;
player.Play();
}

}


}
}
Merci d'avance d'avoir m'aider.

12 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
10 mai 2011 à 11:46
Salut

La classe Windows.Forms.Timer te permet de résoudre ce problème très facilement :
Méthode appelée toutes les deux minutes :
void timer_Tick(object sender, EventArgs e)
{
    // Là, tu codes les traitements 
    // effectués toutes les deux minutes
}


Code pour créer et lancer le timer :
Timer timer = new Timer(); // Création du timer
timer.Interval = 1000 * 60 * 2; // 2 minutes
timer.Tick += new EventHandler(timer_Tick); // Choix de la méthode à appeler
timer.Start();  // Tu lances le timer


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
1
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
9 mai 2011 à 16:53
Avec System.Threading.Thread.Sleep(5000); par exemple pour attendre 5s avant la suite, mais tu ne peux rien faire à coter.
Donc regarde du coté de la classe Timer http://msdn.microsoft.com/en-us/library/system.timers.timer%28v=VS.71%29.aspx
0
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011
10 mai 2011 à 10:03
Merci pour votre réponse smathis mais est qu'il n'y a pas une autre solution car le thread ne me permet pas de controler le texteBox chaque une période.
0
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
10 mai 2011 à 11:20
Si tu lances un thread pour le contrôle uniquement, il suffit de mettre dans une fonction récursive avec le traitement, l'attente, l'appel à elle même.
Ou sinon tu essayes les Timer.
0

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

Posez votre question
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011
10 mai 2011 à 14:43
Salut,
Merci beaucoup krimog pour ta réponse ça vraiment m'aider.
0
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011
10 mai 2011 à 14:52
Salut,
J'ai un autre problème:Comment effacer le contenu du texteBox après chaque timer.merci d'avance pour vos réponses.
0
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
10 mai 2011 à 15:32
Effacer le contenu d'une textbox ?
txt.Text=""; mais ça me parait trop évident pour que ça soit ce que tu cherches.
0
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011
10 mai 2011 à 17:28
Salut,j'ai dèja fait ce que tu as dit mais le contenu de textBox n'apparait plus.
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
10 mai 2011 à 17:36
Tu n'es pas clair sur ce que tu souhaites faire :
D'un côté, tu dis que tu veux effecter le contenu de la textBox, d'un autre tu te plainds que son contenu n'apparaisse plus...

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011
11 mai 2011 à 13:51
Salut,
Comme j'ai expliqué dans mon premier message,lorsque la valeur du textBox qui est lu d'un fichier texte est égale à 1 une alarme va étre déclencher.C'est pour cela qu'il faut que la valeur s'affiche au moment de déclenchement puis s'efface après le déclenchement de l'alarme pour pouvoir le vérifier après 2 minutes.
J'espère que vous m'avez compris et merci.
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
11 mai 2011 à 14:38
Bah dans ce cas, ce n'est qu'après le déclenchement de l'alarme que tu fais textBox.Text = "";

Ou alors je n'ai toujours pas compris, auquel cas il va falloir donner un exemple bien précis.


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011
11 mai 2011 à 16:47
Salut,
ça marche mais la valeur apparaît très vite.
Dans mon projet je besoin de lire un son audio dans trois cartes son externes.J'ai réussi avec Device number() de lire le son dans l'une des cartes sons mais pas tous.Est ce que quelqu'un s'il vous plait peut m'aider à faire une fonction playInAll qui permet de lire un son dans mes 3 cartes son externes qui sont installée à mon pc.
Merci bien pour vos réponses.
0
Rejoignez-nous