ToolStripやStatusStripのように独自にツールチップを実装するクラスでは、このToolTipクラスを用いる必要はありません。
public ToolTip (System.ComponentModel.IContainer cont);ToolTip(IContainer) - ToolTip Constructor (System.Windows.Forms) | Microsoft Learn
引数でコンテナを指定しておくことで、それが破棄されるときにToolTipも破棄されるようになります。
型 | プロパティ | 内容 | 既定値 |
---|---|---|---|
int | AutomaticDelay | 以下の3つのプロパティ、InitialDelay、ReshowDelay、AutoPopDelayの一括指定
(このプロパティに設定すると、以下の3つのプロパティの値が上書きされる) |
500ミリ秒 |
int | InitialDelay | ツールチップが表示されるまでの時間 | AutomaticDelay |
int | ReshowDelay | 他のコントロールに移動したときに、ツールチップが表示されるまでの時間 | AutomaticDelay / 5 |
int | AutoPopDelay | ポインタが静止しているときに、ツールチップを表示する時間。つまり自動で非表示になるまでの時間
この値の上限は5000ミリ秒のため、それより長く表示するにはToolTipを継承したクラスを作成し、StopTimer()を呼ぶ |
AutomaticDelay * 10 |
型 | プロパティ | 内容 | 既定値 |
---|---|---|---|
bool | Active | falseにすると、ツールチップが無効になり表示されなくなる | |
bool | ShowAlways | trueにすると、親コントロールがアクティブでなくてもツールチップが表示される
(通常は親コントロールがアクティブでなければ、ポインタを合わせてもツールチップは表示されない。このプロパティはその制限を無効にするもので、モードレス ウィンドウで特に有効) |
|
Color | ForeColor | ツールチップの前景色 (テキストの色)。オーナー描画でなければ無視される | |
Color | BackColor | ツールチップの背景色。オーナー描画でなければ無視される | |
bool | UseFading | trueならば、ツールヒントを表示するときにフェード効果を使用する | true |
bool | UseAnimation | trueならば、ツールヒントを表示するときにアニメーション効果を使用する | true |
色やフォントを変更するにはこれをtrueとし、Drawイベントに応答します。
private void toolTip1_Draw(object sender, DrawToolTipEventArgs e) { e.DrawBackground(); e.DrawBorder(); e.Graphics.DrawString(e.ToolTipText, Font, SystemBrushes.InfoText, e.Bounds); // フォントを変更する必要がなければ、DrawText()を呼ぶだけで良い // e.DrawText(); }
フォントを変更すると必要とされる表示領域のサイズも変化する可能性があるため、Popupイベントでツールチップのサイズを設定します。
private void toolTip1_Popup(object sender, PopupEventArgs e) { ToolTip toolTip = (ToolTip)sender; e.ToolTipSize = TextRenderer.MeasureText(toolTip.GetToolTip(e.AssociatedControl), Font); }
メソッド | 機能 |
---|---|
SetToolTip(Control, String) | 指定のコントロールに、ツールチップを関連付けられる。InitialDelayの経過後に表示される |
GetToolTip(Control) | 指定のコントロールに関連付けられている、ツールチップのテキストを取得できる |
RemoveAll() | ツールチップに関連付けられている、すべてのツールチップのテキストを削除できる |
Show(String, IWin32Window) | 指定のウィンドウにツールチップを関連付け、表示できる。即座に表示される |
Hide(IWin32Window) | 指定のウィンドウに関連付けられた、ツールチップを非表示にできる |
指定のコントロールに、ツールチップ テキストを関連付けられます。
public void SetToolTip( Control control, // ツールチップを関連付けるコントロール string caption // コントロール上にポインタがあるときに表示されるテキスト )ToolTip.SetToolTip(Control, String) メソッド (System.Windows.Forms) | Microsoft Learn
ToolTip toolTip = new ToolTip(); toolTip.SetToolTip(this.control1, "SAMPLE1"); toolTip.SetToolTip(this.control2, "SAMPLE2");
異なるコントロールにそれぞれ異なるテキストを設定できます。同一のコントロールに異なるテキストを設定した場合は、新しいテキストに変更されます。
特定のコントロールのツールチップを削除するには、controlでそのコントロールを指定しcaptionをnullとします。一方ですべてのツールチップを削除するには、RemoveAll()を呼びます。
テキストを途中で改行させるには、改行文字列 ("\r\n") を追加します。
ツールチップを表示するコントロールとテキストを指定して、ツールチップを表示できます。
public void Show( string text, IWin32Window window )Show(String, IWin32Window) - ToolTip.Show メソッド (System.Windows.Forms) | Microsoft Learn
public void Show( string text, IWin32Window window, Point point, // 表示する場所。コントロールの相対位置 int duration // 表示する時間。ミリ秒単位 )Show(String, IWin32Window, Point, Int32) - ToolTip.Show メソッド (System.Windows.Forms) | Microsoft Learn
イベント | 発生タイミング |
---|---|
Popup | ツールチップが最初に表示される前 |
Draw | OwnerDrawがtrueで、IsBalloonがfalseのときに、ツールチップが描画されるとき |