■ 注意事項
【1】 Icon を設定しないと、ポップアップ通知が表示されない。 【2】 デスクトップ通知の文字列は限られる => 調べた限りだと、以下の通り。(以降は表示されない) + タイトル:全角38文字 + 内容 :全角76文字 【3】(基本かもしれないが)「Clickイベント」を実装する場合は、右クリックかどうかの判定を入れる => 「contextMenuStrip(右クリック対応)」両方を実装している場合は、両方実行されてしまう
【3】の対応例
private void notifyIcon1_Click(object sender, EventArgs e) { MouseEventArgs eventArgs = (MouseEventArgs) e; if (eventArgs.Button.Equals(MouseButtons.Left)) { // ★左クリックのみ実行する★ MessageBox.Show("Hello World!"); } }
■ 主なプロパティ
BalloonTipIcon
* バルーンToolTipに関連付けるアイコン + None:表示しない + Info:インフォメーション + Warning:警告 + Error:エラー
BalloonTipText
* バルーンToolTipに関連付けるメッセージ
BalloonTipTitle
* バルーンToolTipに関連付けるタイトル
Icon
* 表示するアイコン => これを指定しないと、デスクトップ通知が表示されない補足:アイコンファイルについて
* とりあえずでいいなら、 [追加]-[新しい項目]-[Visual C#アイコン]-[アイコンファイル]で追加
■ サンプル
例1:Hello World
コントロール構成* button1 * notifyIcon1 + BalloonTipIcon : Info + BalloonTipText : テストです。 + BalloonTipTitle : Hello World + Icon : アイコンファイル * contextMenuStrip1 (右クリックで表示するために必要。ContextMenuStrip については、以下の関連記事を参照) + Item : exitToolStripMenuItem を追加ContextMenuStrip ~右クリックを使うには~
https://blogs.yahoo.co.jp/dk521123/22454285.html
コード
using System; using System.Windows.Forms; namespace SampleForm { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { this.notifyIcon1.ShowBalloonTip(500); this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1; } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } } }
例2:アイコンを点滅させる
コントロール構成* button1 * notifyIcon1 + BalloonTipIcon : Info + BalloonTipText : テストです。 + BalloonTipTitle : Hello World + Icon : アイコンファイル * contextMenuStrip1 (右クリックで表示するために必要) + Item : exitToolStripMenuItem を追加 * Timer (★ 「例1:Hello World」との違い ★) + Enabled : true + Interval : 1000 ※ アイコンを二つ用意するコード
using SampleForm.Properties; using System; using System.Drawing; using System.Windows.Forms; namespace SampleForm { public partial class Form1 : Form { private Icon[] icons; private int currentIconIndex; public Form6() { InitializeComponent(); this.currentIconIndex = 0; this.icons = new Icon[] { Resources.Icon1, Resources.Icon2 }; } private void button1_Click(object sender, EventArgs e) { this.notifyIcon1.ShowBalloonTip(500); this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1; } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { this.notifyIcon1.Icon = this.Icon; Application.Exit(); } private void timer1_Tick(object sender, EventArgs e) { this.ChangeIcon(); } private void ChangeIcon() { this.notifyIcon1.Icon = this.icons[this.currentIconIndex]; this.currentIconIndex++; if (this.currentIconIndex >= this.icons.Length) { this.currentIconIndex = 0; } } } }
参考文献
例1:Hello Worldhttps://dobon.net/vb/dotnet/control/showtasktrayicon.html
https://codezine.jp/article/detail/421
例2:アイコンを点滅させる
https://dobon.net/vb/dotnet/control/animatetasktrayicon.html
http://nanoappli.com/blog/archives/1975