|
■No1736 (Hirotow さん) に返信
> 対処療法的ですが、
> いったんHide()すればShow()しても大丈夫だと思います。
Hirotowさん、返信ありがとうございます。
いったんHide()してShow()と言うのは以下のようなコーディングを指すので
しょうか?
private void toolTip1_Popup(object sender, PopupEventArgs e)
{
toolTip1.Hide(button1);
toolTip1.Show("あいうえお", button1, 0, 0); // ← 0,0は例です。
}
この方法ですとツールチップが表示→消滅→表示→消滅と点滅が繰り返され
てしまうのですが、Hide()メソッドを記述するイベントや位置が違うのでしょうか?
これはあくまで私見なのですが、Popupイベントは"表示前"に発生する様なので
その中でShow()メソッドを実行すると、それに反応して別のPopupイベントが
発生してしまい、無限ループっぽくなってOverflowが発生するものと考えます。
更にPopupイベント内でHide()メソッドを実行した場合、初回のイベントでは
非表示の対象となるツールチップが表示されておらず、再帰的に発生する2回目
以降のイベントで、前回のイベント時に表示されたツールチップを非表示としま
すが、すぐさま次のShow()メソッドが実行されるため、結果的にツールチップが
点滅している物と思われます。
自分でももう少し調査してみますが、他の方法をご存知の方がいらっしゃいまし
たら、引き続き宜しくお願いします。
|