※ ChatGPTを利用し、要約された質問です(原文:Visual C#で連続してバルーン通知したい)
Visual C#で連続してバルーン通知する方法
このQ&Aのポイント
Visual C# 2010を使用して、連続してバルーン通知を行う方法を解説します。
通常、バルーン表示を指定秒数が到達する前に行うと前回のバルーンが消えてしまうため、最低10秒表示する方法を紹介します。
Form1にbutton1とnotifyIcon1を設置し、ボタンをクリックしたらバルーンを10回表示するプログラムを実装します。
Visual C# 2010を使用しております。
バルーン表示を必ず指定した秒数実行してほしいです。
バルーン表示を指定秒数が到達する前に行うと、前回のバルーン表示が消えてしまいます。
Form1にbutton1とnotyfyIcon1を設置し、ボタンをクリックしたらバルーンを10回表示するプログラムです。
下記のソースを実行するとわかると思います。
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
notifyIcon1.BalloonTipText = "test" + i;
notifyIcon1.ShowBalloonTip(10000);
}
}
実行すると「test9」のバルーンが1個表示されて終わってしまいます。
これを「test1」のバルーンを10秒表示後「test2」のバルーンを10秒表示…
のように最低10秒表示するようにしたいのですが、どのようにすればよいでしょうか?
お礼
回答ありがとうございます。 実はループ中に他処理をしていて、if文にて条件に当てはまったらバルーン表示、という内容になっています。 sleepすると他処理も停止してしまいますか? その場合、処理速度が1ループ毎に10秒遅くなってしまうので今回の場合使えません。
補足
ArrayListとタイマーにて目的を達成できました。 public partial class Form1 : Form { System.Collections.ArrayList DataList = new System.Collections.ArrayList(); public Form1() { InitializeComponent(); timer1.Interval = 10000; } private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 10; i++) { if (i % 2 == 0) { DataList.Add("test" + i); timer1.Enabled = true; } } } private void timer1_Tick(object sender, EventArgs e) { if (DataList.Count != 0) { notifyIcon1.BalloonTipText = DataList[0].ToString(); notifyIcon1.ShowBalloonTip(10000); DataList.RemoveAt(0); } } } ありがとうございました。