0

私はwpfでいくつかのコードを書いています.カーソルが数秒間静止するとクリックを実行するマウスがあります..私が作成した新しいwpfウィンドウを開くとクリックを止めたいです...しかし、それはほとんどすべてを試してもdispachersが止まらない...何か方法はありますか??

   public DispatcherTimer NewDispacher = new DispatcherTimer();
   public DispatcherTimer NewDispacher2 = new DispatcherTimer();

   public void CreateDispachers() 
   {
       NewDispacher.Tick += new EventHandler(NewDispacher_Tick);
       NewDispacher.Interval = new TimeSpan(0, 0, 0, 0, 10);
       NewDispacher.Start();
       NewDispacher2.Tick += new EventHandler(NewDispacher2_Tick);
       NewDispacher2.Interval = new TimeSpan(0, 0, 0, 4);
       NewDispacher2.Start();
   }

   public void NewDispacher_Tick(object sender, EventArgs e)
    {
        pointcur = GetCursorPosition(); 
    }

   public void NewDispacher2_Tick(object sender, EventArgs e)
    {
        pointdiff = GetCursorPosition();
        if(form1opened==true)
        {   
             NewDispacher.Stop();
             NewDispacher = null;
             NewDispacher2.Stop();
             NewDispacher2 = null;
        }
        else if ((pointdiff.X >= pointcur.X - 5) 
                 && (pointdiff.X <= pointcur.X + 5) 
                 && (pointdiff.Y >= pointcur.Y - 5) 
                 && (pointdiff.Y <= pointdiff.Y + 5))
        {
            DoMouseClick();
            pointcur.X = 0;
        }

    }

新しいフォームが開かれたときに bool Form1opened=true にしますが、ifに入ってもディスパッチャーが止まりません... よろしくお願いします..

4

1 に答える 1

1

実際のところ、Stop() *強調テキスト*は*強調テキスト*をトラック内の DispatcherTimer で停止します。したがって、コードの他の場所に説明が必要です。おそらく、何らかの方法でタイマーを再起動していますか?意図せずに再び呼び出された場合に備えて、タイマーをインスタンス化/開始するコードをいつ実行できるかを確認します。

于 2012-09-09T16:59:50.860 に答える