none
ツールヒントの再表示について RRS feed

  • 質問

  • 現在、VS.NET2005でWindowsアプリケーションを開発しております。

    開発中のアプリケーションにToolTipを配置し、Buttonコントロールに補足説明を表示しています。

    単純なサンプルコードを下記に記述します。


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.ToolTip1.SetToolTip(Me.Button1, "ツールチップの表示1。")
     End Sub


    問題はToolTipを表示させ続け、AutoPopDelayプロパティで設定した時間分表示させ続けたところ、2度と再表示されなくなってしまうことです。

    Formで実体化されているため、永続的に表示され続けると思い込んでいたのですが、何故再表示されないのでしょうか。

    Formが表示されている間表示させるように設定する場合は、Button.MouseEnterイベントなどに記述する方法が妥当なのでしょうか。

    同様な現象で悩んでいる方や、原因のわかる方がおられましたら教えて下さい。

    よろしくお願い致します。

    2006年9月11日 17:27

すべての返信

  • ToolTip1.AutoPopDelay = 5000にて検証
    (1)ツールチップが自動的に消える(5000ms)までコントロール上にカーソルを乗せている場合
     ->ツールチップが再表示されない

    (2)ツールチップが自動的に消える(5000ms)前にコントロール上からカーソルを外す
     ->ツールチップは再表示される

    (3)(1)の後、別のコントロールのツールチップを表示、または別コントロール上にカーソルを乗せて、再度(1)を行う
     ->ツールチップは再表示される

    というような現象でした。
    確かに、(1)の場合だと、再表示されないようですね。
    AutoPopDelay、InitialDelay、ReshowDelayのプロパティ値の絡みがあるのかも・・・
    とりあえず現象報告まで・・・

    2006年9月11日 23:23
  • これ、別のコントロールの ToolTip を表示させた場合は問題なくフカーツする現象のことですか?

    であれば、以前にもどこかで出ていたような気がしますが...

    2006年9月11日 23:50
  • 皆さま、こんにちは。

    ありましたありました。
    こちらと同じことではないでしょうか?

    WinForm の ToolTip が消えたあと現れない

    勘違いでしたら、ごめんなさい。(*_ _)

    2006年9月11日 23:54
  • たぶん、この現象の事ですね。
    情報フォローありがとうでした。
    2006年9月12日 0:08
  • うまなまさん、じゃんぬさん

    返信ありがとうございます。

    以前のスレッドが存在したんですね。

    チェックが足りなくてすいません。

    msdnだと確かにShowメソッドで制御と説明してありますね。

    Showメソッドで実装した場合、ツールヒントの表示箇所も確認したら、

    とても見えにくかったため、適切なタイミングでSetToolTipメソッドを実行することで

    解決することとしました。

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

    2006年9月12日 15:45
  • イヨモです。

    私も同様の処理で悩んでいまして、ToolTip.AutomaticDelay プロパティ を変更して、対応することを検討しています。

    そこで、ToolTip.AutomaticDelay プロパティの最大値を設定しようと考えているのですが、

    マニュアルなどを読んでも、規定値までしか記述されておらず、最大値がわかりません。

    実際に、テストしたところ、50000ms(50秒)まで表示されることは確認しました。

    最大値の設定を知っている方がおられましたら、教えてください。

    よろしくお願い致します。

    2006年10月3日 3:13
  • イヨモさん、こんにちは。

     イヨモ さんからの引用
    そこで、ToolTip.AutomaticDelay プロパティの最大値を設定しようと考えているのですが、マニュアルなどを読んでも、規定値までしか記述されておらず、最大値がわかりません。
    最大値の設定を知っている方がおられましたら、教えてください。

    AutomaticDelay プロパティの型は System.Int32 ですよね。
    よって、2,147,483,647 まででしょう。

    仮にこれより小さな数字しか受け付けないとすれば、
    値を渡した時点で、ArgumentException などが発生するハズです。

    2006年10月3日 7:26