フォームの右下に小さいロゴを設定して、フェードイン/フェードアウトするプリセット速度で、フェードあたり約6秒。私はいくつかの異なる方法を試しましたが、最初のタイマーが終了したら再びフェードインすることはできません。ここでは、2つのタイマーとそれぞれのティックメソッドのための私のコードです。2番目のtimer.Start()は最初のタイマーの目盛りによって起動されていません
EDIT今すぐ含まれているタイマの宣言。
Timer fade = new Timer();
Timer fade2 = new Timer();
fade.Interval = (200);
fade.Tick += new EventHandler(fade_Tick);
fade2.Interval = (200);
fade2.Tick += new EventHandler(fade_Tick_Two);
fade.Start();
private void fade_Tick(object sender, EventArgs e)
{
if (alpha < 255)
{
image = picboxPic.Image;
using (Graphics g = Graphics.FromImage(image))
{
Pen pen = new Pen(Color.FromArgb(alpha, 255, 255, 255), image.Width);
g.DrawLine(pen, -1, -1, image.Width, image.Height);
g.Save();
}
picboxPic.Image = image;
this.Invalidate();
alpha++;
}
else
{
fade.Stop();
fade2.Start();
}
}
private void fade_Tick_Two(object sender, EventArgs e)
{
if (alpha > 0)
{
image = picboxPic.Image;
using (Graphics g = Graphics.FromImage(image))
{
Pen pen = new Pen(Color.FromArgb(alpha, 255, 255, 255), image.Width);
g.DrawLine(pen, -1, -1, image.Width, image.Height);
g.Save();
}
picboxPic.Image = image;
this.Invalidate();
alpha--;
}
else
{
fade2.Stop();
fade.Start();
}
}
2番目のタイマーが開始されない理由は何ですか?ブレークポイントを使用しましたが、アルファレベルは255に達しましたが、2回目のTickイベントはトリガーされません。
fade2とfade2の宣言を含めることができますか? – Marisa
編集済み@Marisa :) –
コードを新しいプロジェクトフォームにコピーして、すべての画像操作をコメントアウトして実行しました。アルファ値が255に達した後、完全にfade_Tick_Twoをヒットします。 – rs232