質問: "mousehover triggerd"; m_tooltips.show(tiptext, this, 3000); } } } コードは、無効なコントロールのツールチップ表示を処理します。問題は、無効にされたコントロールの上にマウスを置くと、ツールチップが閉じ続け、再表示されることです。ツールチップに追加した表示時間から、マウスが親フォームの上にある場合、mousemoveイベントは約3秒ごとに呼び出されるため、ツールチップは3秒ごとに更新されます。ただし、マウスが無効なコントロール上にある場合、ツールチップは1秒ごとに更新されます。また、ツールチップがフォームの上で更新されると、テキストのみが短いフラッシュで更新されます。ただし、無効にされたコントロールの上でツールチップが更新されると、マウスが有効なコントロールに移動しているかのようにツールチップウィンドウが閉じ、ツールチップは閉じられるはずです。ツールチップはすぐに再表示されます。なぜ誰かがこれを教えてくれますか?ありがとう。
回答: マウスを無効にしたコントロールにヒットしたときにツールチップを1回だけ表示し、マウスを離したときにツールチップを非表示にすることができます。 pls、以下のコードを見てください。フォーム上の無効になっているすべてのコントロールのツールチップメッセージが表示されているはずです。private tooltip _tooltip = new tooltip(); private control _currenttooltipcontrol = null; public form1() { initializecomponent(); _tooltip.settooltip(this.button1, "my button1"); _tooltip.settooltip(this.button2, "my button2"); _tooltip.settooltip(this.textbox1, "my text box"); } private void form1_mousemove(object sender, mouseeventargs e) { control control = getchildatpoint(e.location); if (control != null) { if (!control.enabled && _currenttooltipcontrol == null) { string tooltipstring = _tooltip.gettooltip(control); // trigger the tooltip with no delay and some basic positioning just to give you an idea _tooltip.show(tooltipstring, control, control.width/2, control.height/2); _currenttooltipcontrol = control; } } else { if (_currenttooltipcontrol != null) _tooltip.hide(_currenttooltipcontrol); _currenttooltipcontrol = null; } } よろしくお願いします