
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ランキング
-
エクセルの画像にツールチップ...
-
ADOのCursorLocationプロパティ
-
C# アプリ終了時に設定を記憶...
-
テキストボックス(VBA)でEnter...
-
ユーザーフォームに日付を表示...
-
ListViewでのリスト表示(初歩...
-
checkbox付きListViewで デフ...
-
MSFlexGrid
-
コンボボックスの高さを変更し...
-
Wordテキストコントロールが未...
-
マウスオーバーした範囲の文字...
-
VB2005 コードでのコントロー...
-
カスタムコントロールInputMan...
-
エクセル VBA ユーザーフォーム...
-
VC++のコンボボックスの各項目...
-
テキストボックスがセルと連動...
-
コンボボックスのセンタリング
-
Enabled=Falseのテキストボック...
-
MSHFlexGrid および MSFlexGrid...
-
VB.NETで縦書表示をしたいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
Wordテキストコントロールが未...
-
ユーザーフォームに日付を表示...
-
エクセルの画像にツールチップ...
-
C# TEXTが空白であるLABELは何...
-
VBからエクセルのテキストボ...
-
DataGridViewで行の展開みたい...
-
エクセル VBA ユーザーフォーム...
-
MSFlexGrid
-
コンボボックスの高さを変更し...
-
VB.NETで縦書表示をしたいので...
-
デザインモードを解除すると消...
-
Enabled=Falseのテキストボック...
-
ADOのCursorLocationプロパティ
-
PictureBoxの背景色変更(VB.NET)
-
VB6でLabelの最前面にText Box...
-
エクセル入力規制リスト行数
-
C# アプリ終了時に設定を記憶...
-
ListViewでのリスト表示(初歩...
-
MFCでbitmapを背景にしてstatic...
おすすめ情報