
VB2010、Winアプリ
こんにちわ。
フォーム上に存在するTextBoxやLabelコントロールに
ToolTipを表示させています。
ToolTipを表示させるための条件とかって設定出来ないんでしょうか?
その条件というのは
「TextBoxやLabelコントロールの幅以上のテキストが入力されている」
場合のみToolTipを表示させたいというものです。
思いついた方法としては
コントロールの幅と入力文字数を係数として格納しておき
MouseのHoverとかのイベント時に文字数チェックを行い
その判定により表示するかしないかを決定する、
というものぐらいしか自分には思いつきませんでした。
もっとスマートな方法があれば教えていただければと思います。
よろしくお願いします。。。
(TextBoxのWordWrapプロパティで折り返しを判断しているものを
見れれば楽にできるのかなぁなんて思ったりもしましたが
どう判断しているかわからなかったもので。。。)
No.1ベストアンサー
- 回答日時:
固定ピッチフォントなら文字数から計算できると思いますがプロポーショナルフォントの場合は文字数だけでは計算できないでしょう。
TextRender.MesureText を使用するのが比較的簡単ではないかと思います。
MouseHover イベントなり TextChanged イベントなりで
Dim s As Size = TextRenderer.MeasureText(TextBox1.Text, TextBox1.Font)
If TextBox1.Width < s.Width Then
ToolTip1.SetToolTip(TextBox1, TextBox1.Text)
Else
ToolTip1.SetToolTip(TextBox1, "")
End If
のようにすると良いと思います。
回答ありがとうございます。
丁寧にソースまで提示していただいて恐縮です。
目的の動作を実装する事が出来ました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBのShapeコントロールを使用し...
-
チェックボックスの文字色の変え方
-
VB2005 コードでのコントロー...
-
テキストボックス(VBA)でEnter...
-
MFCでbitmapを背景にしてstatic...
-
ADOのCursorLocationプロパティ
-
MSFlexGrid
-
PowerPointVBAでスライドマスタ...
-
どう増強すべきか
-
Excel VBAでIEにアクセスするプ...
-
パソコンへの「Dropbox...
-
ユーザーフォームを表示中にシ...
-
ユーザーフォームのラベルに時...
-
VBA リボンののリカバリーでオ...
-
【マクロ】エラー【#DIV/0!】が...
-
VBAで実行時エラー'424' オブジ...
-
クリックイベントなのに、2回ク...
-
実行時エラー 438になった時の...
-
vbaのエラー対応(実行時エラー...
-
以下マクロの処理を最終行まで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの画像にツールチップ...
-
DataGridViewで行の展開みたい...
-
テキストボックス(VBA)でEnter...
-
MSFlexGrid
-
ユーザーフォームに日付を表示...
-
Enabled=Falseのテキストボック...
-
C# TEXTが空白であるLABELは何...
-
ADOのCursorLocationプロパティ
-
VB.NETで縦書表示をしたいので...
-
コンボボックスの高さを変更し...
-
Wordテキストコントロールが未...
-
C# アプリ終了時に設定を記憶...
-
ACCESS2010 ActiveXコントロー...
-
VB6でLabelの最前面にText Box...
-
リストコントロールのデータの...
-
checkbox付きListViewで デフ...
-
ListViewでのリスト表示(初歩...
-
MFCでbitmapを背景にしてstatic...
-
デザインモードを解除すると消...
-
VBからエクセルのテキストボ...
おすすめ情報