.NET TIPS Windowsフォームでツールチップを表示するには?デジタルアドバンテージ 一色 政彦2005/10/21 2005/10/27 更新 |
![]() |
|
Windowsアプリケーションでは、コントロール上にマウス・カーソルを乗せて静止したまま少し時間(デフォルトでは0.5秒)がたつと、そのカーソル付近に「ツールチップ」(もしくは「ツールヒント」)と呼ばれる黄色い小さなウィンドウが表示されることがある。
例えば次のサンプル・アプリケーションでは、ボタンにマウス・カーソルを乗せると、「ツールチップです。」という文字列のツールチップが表示される。
![]() |
ツールチップを表示するサンプル・アプリケーション |
[button1]というButtonコントロール上にマウス・カーソルを乗せると、「ツールチップです。」という文字列のツールチップが表示される。 |
このようなツールチップを表示するには、ToolTipコンポーネント(System.Windows.Forms名前空間)を利用すればよい。具体的な利用手順は、以下のとおりだ。
ToolTipコンポーネントのインスタンス化
まず次のコード例のように、Windowsフォームのクラス内でToolTipコンポーネントをフィールド変数としてインスタンス化する。
|
||
ToolTipコンポーネントのインスタンス化(上:C#、下:VB.NET) |
なおインスタンス化の際、ToolTipクラスのコンストラクタにIContainerインターフェイス(System.ComponentModel名前空間)のオブジェクトを指定してもよい。IContainerオブジェクトはリソース破棄の仕組みで用いられるものである。詳しくは「連載:実例で学ぶWindowsプログラミング」の「コード上の重要な変化(リソース破棄の仕組み)」の項を参照してほしい。
このToolTipコンポーネントのインスタンス化は、Visual Studio .NET(以降、VS.NET)を利用すれば、次の画面の例のようにWindowsフォーム・デザイナでToolTipコンポーネントをドラッグ&ドロップするだけで済み、自らコーディングを行う必要はない。
次に、インスタンス化したToolTipコンポーネント(以降、ToolTipオブジェクト)に対してツールチップの設定を行う。
ツールチップの設定
ある1つのコントロールにツールチップを設定するために必要な情報は、「ツールチップを設定するコントロール」(本稿の例ではボタン)と、「ツールチップの表示文字列」の2つだ。
この2つをパラメータに指定して、ToolTipオブジェクトのSetToolTipメソッドを呼び出せば、ツールチップの設定は完了だ。具体的には次のようなコードになる。
|
||
ツールチップの設定(上:C#、下:VB.NET) |
複数のコントロールでツールチップを表示したい場合には、以上の設定をコントロールごとに行う必要がある(つまり、コントロールごとにSetToolTipメソッドを呼び出す必要がある)。
この設定もVS.NETなら、次の画面のように[プロパティ]ウィンドウから手軽に行うことができる。
![]() |
||||||
VS.NETによるツールチップの設定 | ||||||
VS.NETの[プロパティ]ウィンドウを使えばツールチップ文字列の設定も簡単だ。なお以下の手順は、ツールチップを表示したいすべてのコントロールに対して行う必要がある。 | ||||||
|
以上のコードを実装し、ビルドして実行すると、冒頭のサンプル・アプリケーションのようなツールチップが表示される。
ツールチップの表示タイミングをカスタマイズするには?
上記のサンプル・プログラムを実行すると、ツールチップは、コントロール上にマウス・カーソルを置いてから0.5秒後に表示されるはずだ。これは、ツールチップのデフォルト設定がそうなっているからである。
この表示タイミングをカスタマイズするには、ToolTipオブジェクトのInitialDelayプロパティ(デフォルト値は「500」ミリ秒)を設定し直せばよい。なおInitialDelayプロパティは、コードだけではなく、VS.NETの[プロパティ]ウィンドウからも設定できる。
カテゴリ:Windowsフォーム 処理対象:ツールチップ 使用ライブラリ:ToolTipコンポーネント(System.Windows.Forms名前空間) |
|
![]() |
「.NET TIPS」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
![]() |
|
|
|
![]() |