アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2010、Winアプリ

こんにちわ。

フォーム上に存在するTextBoxやLabelコントロールに
ToolTipを表示させています。

ToolTipを表示させるための条件とかって設定出来ないんでしょうか?

その条件というのは
「TextBoxやLabelコントロールの幅以上のテキストが入力されている」
場合のみToolTipを表示させたいというものです。

思いついた方法としては
コントロールの幅と入力文字数を係数として格納しておき
MouseのHoverとかのイベント時に文字数チェックを行い
その判定により表示するかしないかを決定する、
というものぐらいしか自分には思いつきませんでした。

もっとスマートな方法があれば教えていただければと思います。
よろしくお願いします。。。


(TextBoxのWordWrapプロパティで折り返しを判断しているものを
見れれば楽にできるのかなぁなんて思ったりもしましたが
どう判断しているかわからなかったもので。。。)

A 回答 (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

のようにすると良いと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

丁寧にソースまで提示していただいて恐縮です。
目的の動作を実装する事が出来ました。

ありがとうございました。

お礼日時:2012/04/24 10:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています