C#でスクリーンセーバープログラムを書いています。そして、私はそれを次のようにしたい:
テキストから始めます。約 3 秒以上経過したら、テキストを非表示にして画像を表示します。次の 3 秒後、画像を非表示にしてテキストを表示し、ユーザーがスクリーンセーバーを終了する操作を行うまでループを繰り返します。
私がやったこと:単純なテキストラベルとタイマーコントロールから始めました。3秒ごとに画面上のテキストラベルの位置を変更することができました。ピクチャ ボックスを含めるようにコードを更新し、timer_tick メソッドに if-else ステートメントを挿入して、メソッドが呼び出されたときに、テキスト ラベルが表示されているかどうかをチェックし、それを非表示にしてピクチャ ボックスを表示しました。それ以外の場合は、ピクチャボックスが表示されている場合は、非表示にしてテキストボックスを表示します。コードを以下に示します。
private void Form1_Load(object sender, EventArgs e)
{
Cursor.Hide();
TopMost = true;
moveTimer.Interval = 3000;
moveTimer.Tick += new EventHandler(moveTimer_Tick);
moveTimer.Start();
}
private void moveTimer_Tick(object sender, System.EventArgs e)
{
//Move text to new Location
//textLabel.Left = rand.Next(Math.Max(1, Bounds.Width - textLabel.Width));
//textLabel.Top = rand.Next(Math.Max(1, Bounds.Height - textLabel.Height));
if (pictureBox1.Enabled == true)
{
pictureBox1.Hide();
textLabel.Show();
}
if (textLabel.Enabled == true)
{
textLabel.Hide();
pictureBox1.Show();
}
}
ここに問題があります。スクリーンセーバー プログラムを実行すると、画面はテキストで始まり、3 秒後に画像に変わり、そこで停止します。
テキストラベルまたはピクチャボックスを表示/非表示にして、連続ループで移動するにはどうすればよいですか?
これを正しい方法で実装しましたか?
明確で簡潔な説明/回答をいただければ幸いです。
ありがとう!