- - PR -
ToolTipが2回目から表示されない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-06-05 11:43
今、ToolTipを張り付けたUserControlがあります。
このクラスのインスタンスを親フォームのメンバとして持っておいて、 子フォームに子フォームの表示時に追加しようとしています。 初回の子フォーム表示時はきちんとツールチップが表示されるのですが、2回目から はツールチップが表示されなくなります。 これはどうしてなのでしょうか? 以下、ミニマムコードです。
| ||||
|
投稿日時: 2007-06-05 11:59
再現しないです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-06-05 12:11
じゃんぬねっとさん。
そうですか。再現しないですか。 こちらのローカルな問題なのかもしれませんね。 もう少し調べてみます。 ちなみに、当方の環境は以下の通りです。 Visual Studio 2005 Professional Edition + SP1 OSはWindows XP Professional | ||||
|
投稿日時: 2007-06-05 12:33
それはないでしょう。むしろ誤解している可能性が高いと思います。今回は UserControl だとか別 Form だとかは関係ないような気がしています。ToolTip はもともと表示のタイミングというか条件が微妙だったと記憶しています == 直感的でない。(これは過去ログにも挙がっていたと思います) たとえば、同じコントロール相手ですと破棄されたかどうか関係なく連続で表示してくれないと思います。UserControl 内に 2 つコントロールを用意してテストしてみてください。ToolTip が表示されないようであれば、もう 1 方のコントロールで ToolTip が表示されるか確認してみてください。表示されるようであれば、表示されなかった方のコントロールを再度トライしてみてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-06-05 13:08
ちょっと調べてみましたが、2回目以降 ToolTip の内部ハンドルが例外をスローしているようです。(1回目は正常でした)
何らかのタイミングで ToolTip が破棄されてしまう可能性があるかも知れませんね。 | ||||
|
投稿日時: 2007-06-05 13:19
あ、以前私も今回と似たような問題で質問を投げていたことがありました。ご参考にどうぞ。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=573639&SiteID=7 [ メッセージ編集済み 編集者: オノデラ 編集日時 2007-06-05 13:22 ] | ||||
|
投稿日時: 2007-06-05 13:50
じゃんぬねっとさん、オノデラさん。
回答ありがとうございます。 じゃんぬさんが仰られた、2つコントロールを用意してというのは試してみましたが、 状況はかわらずでした。 オノデラさんに提示して頂いたリンクを参考に調べてみました。 やはり、ToolTipのTopLevelControlが最初に表示したフォームに設定されているようです。 最初に表示したフォーム上でしかチップが表示されないみたいですね。 もともとは別プロジェクトで、"tooltipからフォームが既にDisposeされている"と いった類の例外が発生していたので、今回の調査をしていたのですが これなら納得できます。 リンク先にあったえムナウさんの言葉が当てはまりそうです
UserControlに張り付けているActiveXが重たいので、使い回したかったのですが...。 | ||||
|
投稿日時: 2007-06-05 13:57
あーこれですか。私の方のミニマムコードでは再現しないのは無理ないですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1