Soucis de communication entre 2 forms

Résolu
sandra26 Messages postés 92 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 5 août 2009 - 14 janv. 2007 à 12:44
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 11 févr. 2007 à 12:30
Salut,

Jai un petit soucis qui je suis sûre nest pas si grave.
Voila jai 2 formulaires, le premier est le principal , dans celui ci jai creé une fonction timer_Elapsed
()  qui me permet de gerer mes rappels et de les afficher en temps voulu.
Mon second formulaire me permet de rentrer des donnees sur des RDV et de rajouter des rappels, seulement il se peut quon decide de ne pas fermer ce formulaire pour X raisons.
Disons que selon ma liste mon prochain rappel soit vers 15h00. Jai donc programmé mon timer pour se declancher a 15h00 mais pas avant!!(en fait ilse declenche selon linterval de tps quil aura calculé entre maintenant et le prochain rappel)
En fait mon pb est le suivant: comment, a partir de mon deuxieme formulaire, reinitilaiser ma fonction timer_Elapsed
() qui se trouve sur mon premier formulaire?

sandra

11 réponses

cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 janv. 2007 à 13:01
Salut,
Pour accéder à des éléments qui se trouve dans une autre Form, il faut passer une référence d'une Form dans l'autre. Pour le passage de paramètre, voire ce petit exemple ici

<hr size="2" />-Blog-/FONT>
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 janv. 2007 à 13:09
Salut,

A partir du moment où ta seconde form connait une référence vers la premiere, il te suffit simplement d'appeler une méthode de la premiere form (ou de déclencher un évenement) qui reinitialise le compteur
Tu trouveras énormément de sujet sur le forum qui parlent de la communication entre forms...Et aussi la source de Bidou

N'hésite pas à nous donner plus de détails si tu rencontres toujours ton souci.
Mx
MVP C# 
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
14 janv. 2007 à 13:00
Salut, ça c'est une question qui revient trés très souvent. Dans la forme 2 tu dois possèder une référence sur l'objet que tu veux utiliser. Soit en passant cet objet grace au constructeur de la forme 2 soit en passant la référence de de la form 1 avec la méthode Show/ShowDialog.

http://www.csharpfr.com/codes/PASSAGE-PARAMETRES_26735.aspx
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 janv. 2007 à 13:09
Mince

Mx
MVP C# 

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

Posez votre question
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 janv. 2007 à 13:18
Eu par le refresh, une fois de plus...

<hr size="2" />-Blog-/FONT>
sandra26 Messages postés 92 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 5 août 2009
18 janv. 2007 à 18:58
Salut merci pour vos reponses,
Bidou ton code est tres interressant mais je ne crois pas y trouver ce dont jai besoin.
Je vais essayer de reformuler ;-)
Jai dans ma form1 un Timer qui on va dire doit se relancer dans 2h, celle ci reste ouverte et je veux aller dans ma form2.
Dans la form2 je peux rajouter des données, celles ci peuvent necessiter que le timer se declenche plus tot par exemple dans 1h, hors si je ne ferme pas ma form2 mon timer qui se trouve sur la form1 ne recevra pas les nouvelles directives, cad il ne saura pas quil faut se declencher dans une heure et non pas 2.
Voila mon pb est de relancer mon timer qui est dans la form1 sans avoir a fermer ma form2

sandra
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
19 janv. 2007 à 16:01
Bien si.. vu comment tu présentes le problème ça correspond bien à nos réponses. ( ou alors tu mets le timer en public static )










public partial class Form1 : Form
{
    private Timer timer = null;


    public Form1( )
    {
        InitializeComponent( );


        Timer t = new Timer( );
        t.Interval += 500;
       
        // ..


        Form2 form2 = new Form2( timer );
    }
}


public class Form2 : Form
{
    private Timer timer = null;


    public Form2( Timer timer ) : base( )
    {
        // Maintenant tu peux utiliser
        // le timer dans le form 2.
        this.timer = timer;
    }
}
sandra26 Messages postés 92 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 5 août 2009
21 janv. 2007 à 08:25
Bon ben si tu le dis, je vais essayer.
En fait je pensais quil fallait faire un truc du genre
Form1 f1 = new Form1();
f1.timer();

donc la il ne connaisssai plus lancien timer() mais en initialisait un nouveau,
Bref on verra merci de ton aide.

sandra
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
9 févr. 2007 à 10:37
Je rebondis sur votre post car le sujet m'interresse , je cherche comme toi à utiliser le controle de ma form1 avec ma form2 .
Mon controle sert à faire de l'acquisition video il fonctionne parfaitement mais je veux faire une telecommande sur une autre form
Toi y es-tu arrivé ?

www.survey-copter.com
sandra26 Messages postés 92 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 5 août 2009
11 févr. 2007 à 07:48
Oui ca y est , en effet il y a tout dans le code de Bidou.
A premiere vu je n'ai rien remarque mais en effet j'y est trouve tout ce qui m'interressait.
En fait tu cree un evenement qui te permet dans la premiere form de reagir si on ajoute des choses dans la seconde form.
Penche toi plutot du cote des lignes :



newUser.Client_Added +=




new
frmNewUser.AddClientEventHandler(

this
.newUser_Client_Added);

et de la fonction newUser_Client_Added
dans la premiere form

et de tout ce qui va avec dans le seconde form:

public
event AddClientEventHandler Client_Added;

public
delegate
void AddClientEventHandler(Client client);

et du struct Client je pense que tu y trouvera tout ce dont tu aura besoin et si tu as des questions n'hesite pas.
En tout cas merci a bidou pour son code

sandra
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
11 févr. 2007 à 12:30
De rien

<hr />
-Blog-
Rejoignez-nous