2 votes

Résolution de l'erreur : 'Timer' est une référence ambiguë entre 'System.Windows.Forms.Timer' et 'System.Timers.Timer'

Je suis en train de créer une application Windows Form et je veux implémenter un chronomètre.

  public void timerStart()
    {
        DateTime now = DateTime.Now;
        DateTime finish = base.taskEndDate;
        finish = finish.AddHours(_appointmentTime.Hours); //_appointmentTime est une valeur définie par l'utilisateur.
        finish = finish.AddMinutes(_appointmentTime.Minutes);
        finish = finish.AddMilliseconds(_appointmentTime.Milliseconds);

        //Calcul des millisecondes restantes avant la fin de la tâche.
        int daysLeft = finish.Day - now.Day;
        int hoursLeft = finish.Hour - now.Hour;
        int minsLeft = finish.Minute - now.Minute;
        int secLeft = finish.Second - now.Second;
        int milLeft = finish.Millisecond - now.Millisecond;

        //Préparation pour démarrer le chronomètre.
        TimeSpan end = new TimeSpan(daysLeft, hoursLeft, minsLeft, secLeft, minsLeft);
        MessageBox.Show(end.ToString());
        double x = end.TotalMilliseconds;
        System.Timers.Timer _timer = new Timer(x);          

    }

Voici comment j'ai défini ma méthode mais je reçois l'erreur

 'Timer' est une référence ambiguë entre 'System.Windows.Forms.Timer' et 'System.Timers.Timer'

Et je ne suis pas sûr de comment résoudre cette erreur. Une fois le chronomètre terminé, je prévois de créer un événement qui alerte l'utilisateur. JE NE veux PAS que le chronomètre apparaisse sur le formulaire.

6voto

Darin Dimitrov Points 528142

Il semble que vous ayez ajouté à la fois des références using (System.Windows.Forms et System.Timers). Donc supprimez-en une ou qualifiez entièrement le nom du type :

System.Timers.Timer _timer = new System.Timers.Timer(x);

6voto

James Johnson Points 29414

Vous pouvez les dissocier en utilisant un alias de type, comme ceci :

using System.Timers;
using Timer = System.Timers.Timer;

2voto

Adrian Points 3408

System.Timers.Timer _timer = new System.Timers.Timer(x);

Les minuteurs n'apparaissent pas sur le formulaire, ils ne sont pas visuels.

Gardez également à l'esprit les différences entre les (trois!) différents types de minuteurs dans le DNF.

http://msdn.microsoft.com/en-us/magazine/cc164015.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X