ここでは、下図のようなバルーン(吹き出し)型のツールチップ(ツールヒント)(バルーンヒント)を表示する方法を紹介します。
注意:OSの設定によっては、バルーンウィンドウのツールチップを表示できない場合があります。レジストリの「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced」にある「EnableBalloonTips」が「0」の時は、バルーンが表示されません。このような設定になっている場合は、ここで紹介している方法を実行しても何も起こりません。
.NET Framework 2.0以降では、ToolTipコンポーネントのIsBalloonプロパティをTrueにすることにより、ツールチップがバルーンウィンドウとして表示されるようになります。
なお、ToolTipコンポーネントでツールチップを表示する方法は「ツールチップ(ツールヒント)を表示する」で詳しく説明していますので、そちらをご覧ください。
以下の例は、フォームにButtonコントロール「Button1」が配置されているものとして、Button1上にマウスポインタをのせた時にバルーンヒントが表示されるようにしています。
'ToolTipオブジェクトを作成する 'Me.componentsがない時は、Me.componentsを省略する Dim toolTip1 As New System.Windows.Forms.ToolTip(Me.components) 'ツールチップをバルーンウィンドウとして表示する toolTip1.IsBalloon = True 'ツールチップのタイトル toolTip1.ToolTipTitle = "お知らせ" 'ツールチップに表示するアイコン toolTip1.ToolTipIcon = ToolTipIcon.Info 'ツールチップを表示するコントロールと、表示するメッセージ toolTip1.SetToolTip(Button1, "DOBON.NET" & vbLf & "https://dobon.net")
//ToolTipオブジェクトを作成する //this.componentsがない時は、this.componentsを省略する System.Windows.Forms.ToolTip toolTip1 = new System.Windows.Forms.ToolTip(this.components); //ツールチップをバルーンウィンドウとして表示する toolTip1.IsBalloon = true; //ツールチップのタイトル toolTip1.ToolTipTitle = "お知らせ"; //ツールチップに表示するアイコン toolTip1.ToolTipIcon = ToolTipIcon.Info; //ツールチップを表示するコントロールと、表示するメッセージ toolTip1.SetToolTip(Button1, "DOBON.NET\nhttps://dobon.net");
NotifyIconコンポーネントを使用してタスクトレイにアイコンを表示している時に、このアイコンにバルーンウィンドウのツールチップを表示するには、ShowBalloonTipメソッドを使います。ただし、ShowBalloonTipメソッドでツールチップを表示できるのはタスクトレイにアイコンが表示されている時(NotifyIconのVisibleプロパティがTrueで、Iconプロパティにアイコンが設定されている時)だけで、アイコンが表示されていない時は何も起こりません。
なお、NotifyIconコンポーネントでタスクトレイアイコンを表示する方法は「タスクトレイにアイコンを表示する」で詳しく説明していますので、そちらをご覧ください。
以下に、NotifyIcon.ShowBalloonTipメソッドでバルーンウィンドウを表示する例を示します。ここでは、フォームにはすでにNotifyIconコンポーネント「NotifyIcon1」が配置されているものとします。
'タスクトレイにアイコンを表示するための設定 '一度設定すれば、バルーンヒントを表示するたびに設定しなおす必要はない 'NotifyIconのアイコンを設定する NotifyIcon1.Icon = New System.Drawing.Icon("C:\test\app.ico") 'NotifyIconを表示する NotifyIcon1.Visible = True 'バルーンヒントの設定 'バルーンヒントのタイトル NotifyIcon1.BalloonTipTitle = "お知らせ" 'バルーンヒントに表示するメッセージ NotifyIcon1.BalloonTipText = "DOBON.NET" & vbLf & "https://dobon.net" 'バルーンヒントに表示するアイコン NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info 'バルーンヒントを表示する '表示する時間をミリ秒で指定する NotifyIcon1.ShowBalloonTip(10000)
//タスクトレイにアイコンを表示するための設定 //一度設定すれば、バルーンヒントを表示するたびに設定しなおす必要はない //NotifyIconのアイコンを設定する NotifyIcon1.Icon = new System.Drawing.Icon(@"C:\test\app.ico"); //NotifyIconを表示する NotifyIcon1.Visible = true; //バルーンヒントの設定 //バルーンヒントのタイトル NotifyIcon1.BalloonTipTitle = "お知らせ"; //バルーンヒントに表示するメッセージ NotifyIcon1.BalloonTipText = "DOBON.NET\nhttps://dobon.net"; //バルーンヒントに表示するアイコン NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info; //バルーンヒントを表示する //表示する時間をミリ秒で指定する NotifyIcon1.ShowBalloonTip(10000);
ShowBalloonTipメソッドを呼び出すとき、バルーンヒントを表示する時間をミリ秒で指定することができます。ただし、バルーンヒントを表示する最小時間と最大時間がOSで決められているため、その範囲に無ければ、自動的に修正されます。通常は最小値が10秒で、最大値が30秒なので、10秒未満の値が設定された時は10秒となり、30秒より大きいの値が設定された場合は30秒となります。しかも、キーボードイベントもマウスイベントも発生していない時間はカウントしませんので、ShowBalloonTipメソッドで指定した時間よりも長く表示される可能性は十分にあります。
.NET Framework 1.1以前ではバルーンウィンドウを表示する方法が用意されていませんので、自分で何とかするしかありません。
幸いにしてバルーンウィンドウを表示するクラスはいくつか公開されていますので、これらを使わせていただくのもよいでしょう。その例を以下に幾つか紹介します。