Controler automatiquement un textBox [Résolu]

cs_sawass 19 Messages postés jeudi 5 mai 2011Date d'inscription 11 juin 2011 Dernière intervention - 9 mai 2011 à 13:22 - Dernière réponse : cs_sawass 19 Messages postés jeudi 5 mai 2011Date d'inscription 11 juin 2011 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 10 mai 2011 à 11:46
3
Merci
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é. -

Merci krimog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de krimog
smathis 153 Messages postés lundi 22 mars 2010Date d'inscription 17 juin 2011 Dernière intervention - 9 mai 2011 à 16:53
0
Merci
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
Commenter la réponse de smathis
cs_sawass 19 Messages postés jeudi 5 mai 2011Date d'inscription 11 juin 2011 Dernière intervention - 10 mai 2011 à 10:03
0
Merci
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.
Commenter la réponse de cs_sawass
smathis 153 Messages postés lundi 22 mars 2010Date d'inscription 17 juin 2011 Dernière intervention - 10 mai 2011 à 11:20
0
Merci
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.
Commenter la réponse de smathis
cs_sawass 19 Messages postés jeudi 5 mai 2011Date d'inscription 11 juin 2011 Dernière intervention - 10 mai 2011 à 14:43
0
Merci
Salut,
Merci beaucoup krimog pour ta réponse ça vraiment m'aider.
Commenter la réponse de cs_sawass
cs_sawass 19 Messages postés jeudi 5 mai 2011Date d'inscription 11 juin 2011 Dernière intervention - 10 mai 2011 à 14:52
0
Merci
Salut,
J'ai un autre problème:Comment effacer le contenu du texteBox après chaque timer.merci d'avance pour vos réponses.
Commenter la réponse de cs_sawass
smathis 153 Messages postés lundi 22 mars 2010Date d'inscription 17 juin 2011 Dernière intervention - 10 mai 2011 à 15:32
0
Merci
Effacer le contenu d'une textbox ?
txt.Text=""; mais ça me parait trop évident pour que ça soit ce que tu cherches.
Commenter la réponse de smathis
cs_sawass 19 Messages postés jeudi 5 mai 2011Date d'inscription 11 juin 2011 Dernière intervention - 10 mai 2011 à 17:28
0
Merci
Salut,j'ai dèja fait ce que tu as dit mais le contenu de textBox n'apparait plus.
Commenter la réponse de cs_sawass
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 10 mai 2011 à 17:36
0
Merci
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é. -
Commenter la réponse de krimog
cs_sawass 19 Messages postés jeudi 5 mai 2011Date d'inscription 11 juin 2011 Dernière intervention - 11 mai 2011 à 13:51
0
Merci
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.
Commenter la réponse de cs_sawass
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 11 mai 2011 à 14:38
0
Merci
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é. -
Commenter la réponse de krimog
cs_sawass 19 Messages postés jeudi 5 mai 2011Date d'inscription 11 juin 2011 Dernière intervention - 11 mai 2011 à 16:47
0
Merci
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.
Commenter la réponse de cs_sawass

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.