DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

バルーンウィンドウのツールチップを表示する

ここでは、下図のようなバルーン(吹き出し)型のツールチップ(ツールヒント)(バルーンヒント)を表示する方法を紹介します。

バルーンウィンドウのツールチップ

注意:OSの設定によっては、バルーンウィンドウのツールチップを表示できない場合があります。レジストリの「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced」にある「EnableBalloonTips」が「0」の時は、バルーンが表示されません。このような設定になっている場合は、ここで紹介している方法を実行しても何も起こりません。

ToolTip.IsBalloonプロパティを使用する方法

.NET Framework 2.0以降では、ToolTipコンポーネントIsBalloonプロパティをTrueにすることにより、ツールチップがバルーンウィンドウとして表示されるようになります。

なお、ToolTipコンポーネントでツールチップを表示する方法は「ツールチップ(ツールヒント)を表示する」で詳しく説明していますので、そちらをご覧ください。

以下の例は、フォームにButtonコントロール「Button1」が配置されているものとして、Button1上にマウスポインタをのせた時にバルーンヒントが表示されるようにしています。

VB.NET
コードを隠すコードを選択
'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")
C#
コードを隠すコードを選択
//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」が配置されているものとします。

VB.NET
コードを隠すコードを選択
'タスクトレイにアイコンを表示するための設定
'一度設定すれば、バルーンヒントを表示するたびに設定しなおす必要はない
'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)
C#
コードを隠すコードを選択
//タスクトレイにアイコンを表示するための設定
//一度設定すれば、バルーンヒントを表示するたびに設定しなおす必要はない
//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);

timeoutパラメータについて

ShowBalloonTipメソッドを呼び出すとき、バルーンヒントを表示する時間をミリ秒で指定することができます。ただし、バルーンヒントを表示する最小時間と最大時間がOSで決められているため、その範囲に無ければ、自動的に修正されます。通常は最小値が10秒で、最大値が30秒なので、10秒未満の値が設定された時は10秒となり、30秒より大きいの値が設定された場合は30秒となります。しかも、キーボードイベントもマウスイベントも発生していない時間はカウントしませんので、ShowBalloonTipメソッドで指定した時間よりも長く表示される可能性は十分にあります。

.NET Framework 1.1以前の場合

.NET Framework 1.1以前ではバルーンウィンドウを表示する方法が用意されていませんので、自分で何とかするしかありません。

幸いにしてバルーンウィンドウを表示するクラスはいくつか公開されていますので、これらを使わせていただくのもよいでしょう。その例を以下に幾つか紹介します。

  • 履歴:
  • 2014/5/19 バルーンが表示されない時の注意事項を追加。サンプルコードをより丁寧に書き換えたなど。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • Windows Vista以降でUACが有効になっていると、ファイルへの書き込みに失敗する可能性があります。詳しくは、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。