2012-04-11 8 views
0

今私がしたいのは、私のプログラムをバックグラウンドで持っているので、イベントが発生した25秒後にイベントが発生するたびに5秒後に追加されます。イベントのパネルを有効にする問題

提案がありますか?ここで

は、私は私のプログラムが何をしたいのか

 private void autoshapingPanel_Paint(object sender, PaintEventArgs e) 
     { 

     } 

     //Code for Peck Counter 

     private int counter = 0; 

     public event EventHandler Clicked5TimesEvent; 

     private void OnClicked5TimesEvent() 
     { 
      if (Clicked5TimesEvent != null) 
      { 
       Clicked5TimesEvent(this, EventArgs.Empty); 
      } 
     } 

     //Stimulus with Peck Counter 
     private void pictureBox1_Click(object sender, EventArgs e) 
     { 
      counter++; 
      if (counter % 5 == 0) 
      { 
       //Code for Hopper 
       //Code to Write Data 
       string file_name = "C:\\Users\\Carter Daniels\\DATA\\AUTOSHAPINGdata.txt"; 
       System.IO.StreamWriter objWriter; 
       objWriter = new System.IO.StreamWriter(file_name, true); 
       objWriter.WriteLine("5 pecks"); 
       objWriter.WriteLine("1 Reinforcement"); 
       objWriter.Close(); 
       //ITI Panel 
       ITIpanel.Visible = true; 
      } 
     } 

     private void ITIpanel_Paint(object sender, PaintEventArgs e) 
     { 
      if (ITIpanel.Visible == true) 
      { 
       ITItimers.Enabled = true; 
      } 
     } 

     private void ITItimers_Tick(object sender, EventArgs e) 
     { 
      ITIpanel.Visible = false; 
      string file_name = "C:\\Users\\Carter Daniels\\DATA\\AUTOSHAPINGdata.txt"; 
      System.IO.StreamWriter objWriter; 
      objWriter = new System.IO.StreamWriter(file_name, true); 
      objWriter.WriteLine("5s ITI"); 
      objWriter.Close(); 
      ITItimers.Enabled = false; 
      autoshapingPanel.Visible = true; 
     } 
    } 
} 

に何が起こっているのいくつかのコードは、ITIpanelまたはITItimersが発生した回の#をカウントし、どちらか一方の後に新しいイベントを発生さですタイマーが20回発生したことがあります

+0

「赤い刺激」とは何ですか?おそらく、いくつかのコードを投稿することで、この質問の混乱を少なくするのに役立ちます。 – Bernard

+0

私はコードを追加しました。私のプログラムがしたいことは、ITIpanelやITItimersが発生した回数を数え、後に新しいイベントを発生させ、好ましくはタイマーが20回発生したことです。 – cwdaniels

答えて

1

基本的な質問のテキストが多いようです。あなたの既存のイベントに似た別のイベントを実行してください。

private int _timerCounter = 0; 
    private void ITItimers_Tick(object sender, EventArgs e) 
    { 
     if(_timersCounter++ == 5) { 
      OnTimerFired20TimesEvent(); 
      _timersCounter = 0; 
     } 

     ITIpanel.Visible = false; 
     // ... 
    } 

public event EventHandler TimerFired20TimesEvent; 

     private void OnTimerFired20TimesEvent() 
     { 
      if (TimerFired20TimesEvent != null) 
      { 
       TimerFired20TimesEvent(this, EventArgs.Empty); 
      } 
     } 
+0

この文脈では、OnTimerFired20TimesEventは存在しませんというエラーが表示されます。 – cwdaniels

+0

ほんの少しの手持ち。コードをコピー/ペーストするのではなく、実際には理解してください。 –

+0

の上にコードを追加しました。今私は問題を見て、実際に追加したばかりのものすべてを追加しました。しかし、If(など...)私はOnTimersFired20TimesEventだけでなく、TimerFired20TimesEvent、など... – cwdaniels

関連する問題