0

私はこのコードを持っています

private void picTop_MouseEnter(object sender, EventArgs e)
{
  if (timer1.Tick == 10)
  {
    picBottom.Visible = true;
    picTop.Visible = false;
    timer1.Stop();
  }
  else 
  {
    MessageBox.Show("ERROR You cannot view this section at this time.\nPlease try again later.");
  }
}

private void picBottom_MouseEnter(object sender, EventArgs e)
{
  picBottom.Visible = false;
  picTop.Visible = true;
  timer1.Start();
}

私のタイマー間隔は 1000 ミリ秒 (つまり 1 秒) に設定されているため、ユーザーが 10 秒後に再びトップ パネルに移動するようにしたいだけです。いくつかの助けをいただければ幸いです。

私が得る現在のエラー: timer1.Tick is red underlined, error= "The event 'System.Windows.Forms.Timer.Tick' can only appear on the left hand side of += or -="

4

2 に答える 2

2

Timer.Tickはプロパティではなく、イベントです。

のように使う

timer1.Tick += 
{
    picBottom.Visible = true;
    picTop.Visible = false;
    timer1.Stop();
}

インターバル用timer.Interval

timer.Interval = 10000;
于 2012-10-25T10:38:42.980 に答える
1

Ok。私はあなたが達成しようとしていることを理解していると思います...

フォームには、「トップ」と「ボトム」と呼ばれる 2 つの領域があります。

ユーザーがトップエリアに入ってから出た後、10 秒間再び入室できないようにする必要があります。あれは正しいですか?

したがって、いくつかの問題があります...まず第一に、発生Tickしたときに起動されるメソッドをアタッチするイベントです。チェックできる整数ではありません。のタイミングに関連するタイマーの唯一の整数プロパティが呼び出されますInterval

しかし、それを除けば、あなたの方法が特に効果的だとは思いません。MouseExitおそらく、一番上のエリアにイベントを追加することをお勧めします。そのエリアを 10 秒間無効にします。タイマーを使用して再度有効にします。

timer1.Tick += timer1_Tick;

public void Top_MouseExit (object sender, EventArgs e)
{
   PicTop.Visible = false; // or hide/disbale it some other way
   Timer1.Interval = 10000; //10 seconds
   Timer1.Start();
}

public void timer1_Tick(object sender, EventArgs e)
{
    timer1.Stop();
    PicTop.Visible = true; //renable the top area
}
于 2012-10-25T10:44:05.807 に答える