C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ユーザーコントロールのツールチップ表示


(過去ログ 105 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■62834 / inTopicNo.1)  ユーザーコントロールのツールチップ表示
  
□投稿者/ 五右衛門 (16回)-(2011/11/05(Sat) 06:21:07)

分類:[VB.NET/VB2005 以降] 

2011/11/05(Sat) 08:10:43 編集(投稿者)

(開発言語:VB2008)
いつもお世話になっております。

ユーザーコントロールをフォームに配置して、マウスポインタがこの上を移動したときに
ツールチップが表示されるように、以下のようにしてみましたが、表示されません。

ToolTip1.SetToolTip(UserCtrl1, "メッセージ")
・ToolTip1:ツールチップ
・UserCtrl1:ユーザーコントロール

調べてみると、ユーザーコントロール上にはめいいっぱいラベル等のコントロールが敷き詰められており、
これらに対してToolTip1.SetToolTipを行うとツールチップが表示されることが分かりましたが、
これらユーザーコントロール上のコントロール間を移動するたびにツールチップが表示されてしまうので、
ユーザーコントロール上にマウスポインタがある間は、1度だけツールチップを表示したい
(つまり、ユーザーコントロール全体に対して唯一のツールチップを適用したい)のですが
何かいい方法はないでしょうか?
引用返信 編集キー/
■62864 / inTopicNo.2)  Re[1]: ユーザーコントロールのツールチップ表示
□投稿者/ shu (1072回)-(2011/11/07(Mon) 07:42:48)
2011/11/07(Mon) 07:44:33 編集(投稿者)

No62834 (五右衛門 さん) に返信

簡単な方法が思いつきませんが、
(1)最初フラグをFalseにしておく
(2)ユーザーコントロール上のどこかのコントロール上にマウスがきたら
 そのコントロールに対しチップをはる。フラグをTrue。フラグがTrueになっていたら
 処理をしない。
(3)マウスが移動してユーザーコントロールの領域からはずれたら(2)で割り当てたチップを消す
フラグをFalseにする。

※フラグをチップを貼ったコントロールとして記憶してもよいかもしれません。

とかどうですか?
引用返信 編集キー/
■62865 / inTopicNo.3)  Re[2]: ユーザーコントロールのツールチップ表示
□投稿者/ NF64 (20回)-(2011/11/07(Mon) 08:41:29)
2011/11/07(Mon) 08:45:37 編集(投稿者)
shuさんの案でコード書いてみました。
UserControlにToolTipとボタン3つがある前提です。

Public Class UserControl1

    Private _flag As Boolean = False

    Private Sub Button_MouseHover(sender As System.Object, e As System.EventArgs) _
        Handles Me.MouseHover, Button1.MouseHover, Button2.MouseHover, Button3.MouseHover

        If (Me._flag) Then Return

        Dim c As System.Windows.Forms.Control = DirectCast(sender, System.Windows.Forms.Control)
        Me.ToolTip1.SetToolTip(c, "Hello World")
        Me._flag = True

    End Sub

    Private Sub Button_MouseMove(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) _
        Handles Me.MouseMove, Button1.MouseMove, Button2.MouseMove, Button3.MouseMove

        Me._flag = False

    End Sub

End Class


引用返信 編集キー/
■62898 / inTopicNo.4)  Re[3]: ユーザーコントロールのツールチップ表示
□投稿者/ 五右衛門 (17回)-(2011/11/08(Tue) 22:30:45)
みなさん、ご回答ありがとうございました。
ただ、ご提案のような方法では、ユーザーコントロール内の移動でツールチップを1回だけ表示することができましたが、
ユーザーコントロール内のコントロール間を移動した時に、Derayの時間を待たずにツールチップが勝手に消えてしまいます。
ツールチップ以外の方法でヒントを表示するなど、ちょっと別の方法を考えてみようと思います。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -