.NET TIPS

Windowsフォームでツールチップを表示するには?

デジタルアドバンテージ 一色 政彦
2005/10/21
2005/10/27 更新

 Windowsアプリケーションでは、コントロール上にマウス・カーソルを乗せて静止したまま少し時間(デフォルトでは0.5秒)がたつと、そのカーソル付近に「ツールチップ」(もしくは「ツールヒント」)と呼ばれる黄色い小さなウィンドウが表示されることがある。

 例えば次のサンプル・アプリケーションでは、ボタンにマウス・カーソルを乗せると、「ツールチップです。」という文字列のツールチップが表示される。

ツールチップを表示するサンプル・アプリケーション
[button1]というButtonコントロール上にマウス・カーソルを乗せると、「ツールチップです。」という文字列のツールチップが表示される。

 このようなツールチップを表示するには、ToolTipコンポーネント(System.Windows.Forms名前空間)を利用すればよい。具体的な利用手順は、以下のとおりだ。

ToolTipコンポーネントのインスタンス化

 まず次のコード例のように、Windowsフォームのクラス内でToolTipコンポーネントをフィールド変数としてインスタンス化する。

private ToolTip toolTip1;
public Form1()
{
  toolTip1 = new ToolTip();
}
Friend WithEvents ToolTip1 As ToolTip
Public Sub New()
  MyBase.New()
  ToolTip1 = New ToolTip()
End Sub
ToolTipコンポーネントのインスタンス化(上:C#、下:VB.NET)

 なおインスタンス化の際、ToolTipクラスのコンストラクタにIContainerインターフェイス(System.ComponentModel名前空間)のオブジェクトを指定してもよい。IContainerオブジェクトはリソース破棄の仕組みで用いられるものである。詳しくは「連載:実例で学ぶWindowsプログラミング」の「コード上の重要な変化(リソース破棄の仕組み)」の項を参照してほしい。

 このToolTipコンポーネントのインスタンス化は、Visual Studio .NET(以降、VS.NET)を利用すれば、次の画面の例のようにWindowsフォーム・デザイナでToolTipコンポーネントをドラッグ&ドロップするだけで済み、自らコーディングを行う必要はない。

VS.NETによるToolTipコンポーネントのインスタンス化
ToolTipコンポーネントのインスタンス化はVS.NETを利用すればとても簡単。
  [ツールボックス]ウィンドウの[Windows フォーム]カテゴリにある「ToolTip」をWindowsフォーム上にドラッグ&ドロップする。
  すると、インスタンス化されたToolTipコンポーネント(この例では「toolTip1」)がWindowsフォーム・デザイナ下部のコンポーネント領域に表示される。これでToolTipコンポーネントのインスタンス化は終了だ。

 次に、インスタンス化したToolTipコンポーネント(以降、ToolTipオブジェクト)に対してツールチップの設定を行う。

ツールチップの設定

 ある1つのコントロールにツールチップを設定するために必要な情報は、「ツールチップを設定するコントロール」(本稿の例ではボタン)と、「ツールチップの表示文字列」の2つだ。

 この2つをパラメータに指定して、ToolTipオブジェクトのSetToolTipメソッドを呼び出せば、ツールチップの設定は完了だ。具体的には次のようなコードになる。

private void Form1_Load(object sender, System.EventArgs e)
{
  toolTip1.SetToolTip(button1, "ツールチップです。");
}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  ToolTip1.SetToolTip(Button1, "ツールチップです。")
End Sub
ツールチップの設定(上:C#、下:VB.NET)

 複数のコントロールでツールチップを表示したい場合には、以上の設定をコントロールごとに行う必要がある(つまり、コントロールごとにSetToolTipメソッドを呼び出す必要がある)。

 この設定もVS.NETなら、次の画面のように[プロパティ]ウィンドウから手軽に行うことができる。

VS.NETによるツールチップの設定
VS.NETの[プロパティ]ウィンドウを使えばツールチップ文字列の設定も簡単だ。なお以下の手順は、ツールチップを表示したいすべてのコントロールに対して行う必要がある。
  ツールチップを表示したいコントロールを選択する。
  [<ToolTipオブジェクト名> の ToolTip]プロパティに表示したい文字列を設定する。本稿の例では、[toolTip1 の ToolTip]プロパティに「ツールチップです。」という文字列を設定した。

 以上のコードを実装し、ビルドして実行すると、冒頭のサンプル・アプリケーションのようなツールチップが表示される。

ツールチップの表示タイミングをカスタマイズするには?

 上記のサンプル・プログラムを実行すると、ツールチップは、コントロール上にマウス・カーソルを置いてから0.5秒後に表示されるはずだ。これは、ツールチップのデフォルト設定がそうなっているからである。

 この表示タイミングをカスタマイズするには、ToolTipオブジェクトのInitialDelayプロパティ(デフォルト値は「500」ミリ秒)を設定し直せばよい。なおInitialDelayプロパティは、コードだけではなく、VS.NETの[プロパティ]ウィンドウからも設定できる。End of Article

カテゴリ:Windowsフォーム 処理対象:ツールチップ
使用ライブラリ:ToolTipコンポーネント(System.Windows.Forms名前空間)

この記事と関連性の高い別の.NET TIPS
[ASP.NET]チャート・コントロールでツールチップを表示するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH