ToolTip の拡張
ScreenTip
Windows Vista の Tip や Office 2007 の Enhanced ScreenTip のようなものを目指して、ToolTip を拡張します。
ダウンロード
- ScreenTip.cs
- ScreenTipRenderer.cs
- ScreenTip 単体での DLL ファイルの公開はありません。
使用方法
基本的に ToolTip と同じです。 フォームデザイナに追加すると、コントロールのプロパティに ToolTip プロパティ、TipImage プロパティ、Subtext プロパティが追加されるので、必要に応じて設定します。
また、OwnerDraw プロパティを False にするか、IsBallon プロパティを True にすれば、ToolTip と同じ動作をします。
問題点・仕様上の妥協点
- ToolTip プロパティが明示的に設定されていない状態では、ScreenTip は絶対に表示されない。
- メインテキストが長いツールヒントでは、テキストがはみ出してしまうことがある。
- ヒント全体が画面に収まるようにする表示位置の調節がない。
- RightToLeft に非対応。
- Enabled が False になっているコントロールにはヒントが表示されにくい。
- ウィンドウの背景が黒になっているのが描画時に見えることがある。
- フォントをイベントデータの AssociatedControl から取得している。
主なメンバ
-
bool IsEnhanced { get; set; } - True の場合で、画像などが指定されているならば、ツールヒントの表示を拡張します。
-
Image TipImage { get; set; } - ツールヒントに表示する画像をリソースから指定します。 画像の廃棄処理は ScreenTip が行います。 拡張プロバイダによってコントロールに提供されるプロパティですが、実際には対のメソッドで定義されます。
-
string Subtext { get; set; } - ツールヒントに表示する追加のテキストをリソースから指定します。 複数行の入力および描画がサポートされています。 拡張プロバイダによってコントロールに提供されるプロパティですが、実際には対のメソッドで定義されます。
-
void Show(string, Image, string, Control, Point, int); - 指定したコントロールにツールヒントを設定し、指定した相対位置に指定した時間だけ表示します。
技術情報
- ScreenTip のレイアウトおよび描画
- ToolStripItem に ScreenTip を提供できるようにする実験