ツールチップが 1 つのコントロール上を移動するマウスに追従するようにします。たとえば、パネルを見てみましょう。マウスの位置が Rectangle(100, 100, 50, 50) 内にある場合、ToolTip が表示され、常にマウスの右下に表示されるようにします。この四角形の外側にあるときは、ToolTip を非表示にします。
私はそのようにこれをやろうとしました:
ToolTip toolTip = new ToolTip();
int x, y;
protected override void OnMouseMove(MouseEventArgs e)
{
if ((x == e.X) && (y == e.Y) && (new Rectangle(100, 100, 50, 50).Contains(e.Location))
toolTip.Show("some text", this, x + 10, y + 10);
else
{
x = e.X;
y = e.Y;
toolTip.Hide(this);
}
}
しかし、問題があります - ツールチップが表示されると、フォーカスが得られ、その後 OnMouseMove(MouseEventArgs e) が機能しなくなります。その関数の最後にあるパネルにフォーカスを移そうとしましたが、うまくいきません。OnMouseHover でいくつかのトリックも試しましたが、同じ効果でした。