Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1870 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  boite de dialogue avec tempo

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

boite de dialogue avec tempo

n°786777
cymp
Posté le 05-07-2004 à 11:39:55  profilanswer
 

Bonjour a tous,
 
  je voudrais faire une boite de dialogue avec tempo qui appuie sur ok tout seul au bout de 5s, ce qui evite de bloquer le programme si l'utilisateur n'est pas la. J'ai pense a utiliser la classe Timer, mais je ne sais pas si il n'y a pas plus simple...
 
Merci :)

mood
Publicité
Posté le 05-07-2004 à 11:39:55  profilanswer
 

n°786878
cymp
Posté le 05-07-2004 à 13:49:38  profilanswer
 

any idea?

n°786885
cymp
Posté le 05-07-2004 à 14:03:34  profilanswer
 

je voulais faire un gros for vide mais c assez crade quand meme :)

n°786893
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-07-2004 à 14:22:40  profilanswer
 

pourquoi ne pas utiliser un Timer :??:


---------------
J'ai un string dans l'array (Paris Hilton)
n°786922
cymp
Posté le 05-07-2004 à 14:36:09  profilanswer
 

bah en fait g fait avec la date systeme, avec une bete soustraction, ca prend 3 lignes. Avec un timer jai limpression que tu dois te servir de TimerEventProcessor, de faire des start et des stop, ou de use des interval, ce qui me parait un peu bourrin pour une simple boite

n°786935
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-07-2004 à 14:42:51  profilanswer
 

cymp a écrit :

bah en fait g fait avec la date systeme, avec une bete soustraction, ca prend 3 lignes. Avec un timer jai limpression que tu dois te servir de TimerEventProcessor, de faire des start et des stop, ou de use des interval, ce qui me parait un peu bourrin pour une simple boite

ben c'est pourtant le plus propre hein [:heink]
ça te parait tellement compliqué de définir un timer avec un intervalle de 5 secondes, puis de le démarrer, et d'y rattacher une callback qui te ferme la Dialog (1 ligne) ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°786939
cymp
Posté le 05-07-2004 à 14:44:34  profilanswer
 

comment tu fais ca en une ligne?

n°786948
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-07-2004 à 14:51:22  profilanswer
 

Code :
  1. public void Timer_Tick(object sender,EventArgs eArgs)
  2. {
  3.    TheForm.Close();
  4. }


Message édité par Harkonnen le 05-07-2004 à 14:51:41

---------------
J'ai un string dans l'array (Paris Hilton)
n°786960
cymp
Posté le 05-07-2004 à 15:06:42  profilanswer
 

oui mais comment je fais pour que mq boite corresponde a TheForm et pouvoir lappeler correctement dqns cette methode?

n°786964
oliv5
Pourquoi ? Parce que !
Posté le 05-07-2004 à 15:14:50  profilanswer
 

Harkonnen a écrit :

Code :
  1. public void Timer_Tick(object sender,EventArgs eArgs)
  2. {
  3.    TheForm.Close();
  4. }



 
ca c'est 4 lignes (allez, 2, jcompte pas les parenthèses)  :D  
Sinon, ca me parait etre la meilleure solution.

mood
Publicité
Posté le 05-07-2004 à 15:14:50  profilanswer
 

n°786966
cymp
Posté le 05-07-2004 à 15:16:32  profilanswer
 

je comprends pas comment marche votre truc :(

n°786972
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-07-2004 à 15:22:53  profilanswer
 

tain, y'a du boulot ! je te soupçonne de te lancer dans un truc sans connaitre le C# ni .NET toi !
 
il te suffit juste de remplacer "TheForm" par le nom de ta boite hein, c'est juste un exemple ! (attribut "Name" de la classe Form)
 
d'abord, dans le constructeur de ta classe, tu rajoutes les lignes suivantes :

Code :
  1. Clock=new Timer(); // on créé un timer
  2. Clock.Interval=5000; // on définit son intervalle de déclenchement toutes les 5000 ms
  3. Clock.Start(); // on le démarre
  4. Clock.Tick+=new EventHandler(Timer_Tick); // on rattache à son évènement Tick un delegate qui appellera la fonction que je t'ai posté plus haut toutes les 5000 ms


Et c'est tout !
T'auras juste à rajouter un test dans la fonction du post précédent pour vérifier si le Tick provient bien du Timer Clock (if sender == Clock...), à stopper ce timer à la fin de cette fonction et à rajouter un booléen pour vérifier si le Timer est toujours en place, auquel cas tu devras appeler Application.DoEvents pour éviter de freezer le système !


Message édité par Harkonnen le 05-07-2004 à 15:24:28

---------------
J'ai un string dans l'array (Paris Hilton)
n°786977
cymp
Posté le 05-07-2004 à 15:26:41  profilanswer
 

oui mais moi pour afficher une boite de dialogue je fais MessageBox.Show, et jarrive pas a donner un nom a cette box! Donc je peux pas lui faire de close


Message édité par cymp le 05-07-2004 à 15:34:08
n°786985
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-07-2004 à 15:35:53  profilanswer
 

MessageBox.Show t'affiche une boite de dialogue système modale, qui en général se déclenche pour un cas précis et dans un but informatif. C'est donc pas pour rien qu'elle demande à l'utilisateur de cliquer sur un bouton pour la fermer, ça prouve qu'il est au courant d'un éventuel disfonctionnement dans sa manière de faire ou dans son système ! Vouloir forcer par programme sa fermeture est *NUL* et *DANGEREUX*
 
Imagine un logiciel de compta, qui te déclenche une MessageBox dés que la banque passe sous le seuil de découvert, et que l'opérateur de saisie s'absente pour faire autre chose un certain temps ! Si on suit ta logique, la Box lui passe sous le nez, et il se retrouve dans la merde car un programmeur novice aura cru bon de faire du zèle !


Message édité par Harkonnen le 05-07-2004 à 15:37:13

---------------
J'ai un string dans l'array (Paris Hilton)
n°786989
darklord
You're welcome
Posté le 05-07-2004 à 15:39:36  profilanswer
 

Cype en fosse cai toi? [:dawa]


---------------
Just because you feel good does not make you right
n°787003
oliv5
Pourquoi ? Parce que !
Posté le 05-07-2004 à 15:49:30  profilanswer
 

Harkonnen : le pauvre cymp va croire que tu l'aime pas si tu lui réponds sur ce ton.
 
Cymp :  
Harkonnen a raison, vouloir fermer une messagebox sans le consentement de l'utilisateur est ... bizarre :)
Pour obtenir le meme comportement de manière plus traditionnelle, n'utilise pas de messagebox mais ouvre une petite fenetre modale séparée. Dans celle-ci tu pourras mettre un timer, gérer la fermeture automatique, gérer le clic sur le bouton ok ou annuler etc...

n°787019
cymp
Posté le 05-07-2004 à 15:58:36  profilanswer
 

Bon je suis desole detre nul en c#, je dois faire de la maintenance sur un programme c# et j'en ai jamais fait je me debrouille comme je peux.
Sinon j'ai vu la classe Form, et je v essayer de faire ma ptite boite avec ca...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  boite de dialogue avec tempo

 

Sujets relatifs
Boite texte.[JS] Une boite de demande Oui / Non
utilisation boite de dialogue MFCprob de boite de dialogue
[java] ouverture d'une boite de dialogueHeritage+boite dialogue
boite de dialogue vba excel 
Plus de sujets relatifs à : boite de dialogue avec tempo


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR