2011-09-01 3 views
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); 
     } 
} 

을하지만 문제가있다 - 내 툴팁 표시됩니다 때 - 그것은 더 이상 작동하지 않습니다 초점을 얻고 그 13. OnMouseMove에서는 (MouseEventArgs 형식 전자) 후 :

나는 그런 식으로이 작업을 수행하기 위해 노력했다. 그 기능의 끝에서 패널에 초점을 맞추려고했지만 작동하지 않습니다. 나는 또한 OnMouseHover로 몇 가지 트릭을 시도했지만 같은 효과가있었습니다.

답변

2

해당 도구 설명을 사용하지 마십시오. 패널을 그릴 경우 자신의 도구 설명을 그립니다. 그렇지 않으면 패널을 사용하여 MouseMove 이벤트에 모두 응답하지만 e.Location은 무시하고 System.Windows.Forms.Cursor.PositionPointToClient을 대신 사용하십시오.

+0

그리기를 잊어 버렸습니다. 그것은 크고, 빠르고 전혀 깜박임없이 작동합니다! 고맙습니다 :) –

관련 문제