NotifyIcon その2
Form はあるけど表示しない。
NotifyIcon だけを表示したいプログラムを作成した。
バルーンチップが閉じられたら、Form を閉じてプロセスが終了すように。
と最初はやっていた。
notifyIcon1.ShowBalloonTip(10000);
Thread.Sleep(10000);
これだと必ず10秒待ってから画面が閉じられる。
バルーンチップが閉じたら、画面も閉じたいのだ。
こんなイベントがあるではないか。
BalloonTipClicked
BalloonTipClosed
これだ。バルーンチップが閉じるのが分かるぞ。
とやってみたら、どちらのイベントも発生しないで、無限ループになってしまった。
notifyIcon1.ShowBalloonTip(10000);
while (true) {
thread.Sleep(100);
if (_stopFlg)
break;
}
private bool _stopFlg = false;
BalloonTipClicked イベント
_stopFlg = true;
BalloonTipClosed イベント
_stopFlg = true;
あれやこれやいろいろ試してみました。
で、これ
Application.DoEvents() が必要でした。
notifyIcon1.ShowBalloonTip(10000);
while (true) {
thread.Sleep(100);
Application.DoEvents();
if (_stopFlg)
break;
}
private bool _stopFlg = false;
BalloonTipClicked イベント
_stopFlg = true;
BalloonTipClosed イベント
_stopFlg = true;
Application.DoEvents() はいろいろと弊害もあるのですが。。。