none
Inhiber un contrôle utilisateur RRS feed

  • Question

  • Bonjour,

     

    J'ai un contrôle utilisateur qui est une montre

    Il contient un TIMER qui déclenche l'affichage

    Je le place sur un écran FROM1

    Cet écran FORM1 appel un autre écran FORM2

    Le problème est que je vois que le TIMER du contrôle utilisateur de FORM1 est toujours actif. L'affichage de la montre continue à se faire. Donc consommation de ressource inutile.

    Surtout que je peux avoir une cascade, FORM2 appelant FORM3, …

     

    J'ai trouvé une parade en faisant un DISPOSE de ce contrôle utilisateur lorsque je quitte l'écran où il se trouve

    Dans mon exemple quand je quitte FORM1

     

    Mais ceci ne vaut que si je ne retourne pas sur cet écran ! Car sinon, je n'ai plus ce contrôle !

     

    J'ai cherché alors à arrêter le TIMER en quittant la feuille.

    Mais je n'ai pas accès à ce TIMER …

     

    Dans le contrôle utilisateur, je n'ai pas d'événement CLOSE, comme on en trouve pour une FORM …

     

    Avez-vous une solution ?

     

    Cordialement

    Sauveur CONSALVI


    SC
    samedi 22 octobre 2011 07:57

Réponses

  • Bonjour,

    Rendez votre timer public (dans les propriétés Designer de Visual Studio spécifiez "Public" dans la propriété "Modifiers").
    Vous avez maintenant la possibilité de piloter votre timer depuis l'extérieur du user contrôle :

    Par exemple dans FORM1 vous pouvez écrire :

    monUserControl.monTimer.Enabled = false;

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    samedi 22 octobre 2011 08:55
    Modérateur
  • Bonjour,

    Merci d'avoir répondu aussi vite, et aussi bien …

    Je m'en veux de ne pas y avoir pensé !

     

    J'ai mis un MyControl.MyTimer.Stop avant le lancement d'une fenêtre, et un MyControl.MyTimer.Start après.

     

    Encore merci

    Sauveur CONSALVI


    SC
    samedi 22 octobre 2011 15:07

Toutes les réponses

  • Bonjour,

    Rendez votre timer public (dans les propriétés Designer de Visual Studio spécifiez "Public" dans la propriété "Modifiers").
    Vous avez maintenant la possibilité de piloter votre timer depuis l'extérieur du user contrôle :

    Par exemple dans FORM1 vous pouvez écrire :

    monUserControl.monTimer.Enabled = false;

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    samedi 22 octobre 2011 08:55
    Modérateur
  • Bonjour,

    Merci d'avoir répondu aussi vite, et aussi bien …

    Je m'en veux de ne pas y avoir pensé !

     

    J'ai mis un MyControl.MyTimer.Stop avant le lancement d'une fenêtre, et un MyControl.MyTimer.Start après.

     

    Encore merci

    Sauveur CONSALVI


    SC
    samedi 22 octobre 2011 15:07