2010-01-13 4 views
3

I 윈폼에 대한 도구 설명을 설정하는 코드는 표준적인 방법으로 like this 컨트롤이 : -) (윈도우 툴팁이 표시되지 않아요

툴팁 툴팁 = 새로운 툴팁;

toolTip.SetToolTip (컨트롤, 텍스트);

동일한 응용 프로그램에는 Direct3D SDK를 사용하여 초당 5 프레임으로 일부 이미지의 동영상을 렌더링하는 Window가 있습니다. 이제 영화가 렌더링 될 때, 즉 PLAY 모드에있을 때 툴팁이 나타나지 않습니다. 동영상을 일시 중지하면 툴팁이 나타나기 시작합니다.

  • CASE 1 : 나는 코드를 다음과 같이 변경 한 해결 방법으로

-

툴팁 툴팁 = 새로운 툴팁();

toolTip.InitialDelay = 50;

toolTip.SetToolTip (제어, 텍스트);

이제 영화가 재생되는지 여부에 관계없이 툴팁이 렌더링되는 초기 지연을 소개하겠습니까?

  • CASE 2 : 나는 초기 지연을 넣어 대신 컨트롤의 OnMouseHover 이벤트에 가입 한 후 명시 적으로도 핸들러의 코드 위의 두 줄을 넣지 않으면

는 다음 또한 툴팁 분실되지 않습니다. 그들은 정상적으로 나타납니다. 그러나 이것은 툴팁을 표시하는 표준 방식이 아닙니다.

툴팁 렌더링에서 잘못되고있는 부분에서 나를 교정 할 수 있습니까? 나는 .NET 2.0 & C#을 사용하고있다.

+2

위키 일 필요는 없습니다. –

+1

이것은 툴팁을 만드는 표준 방법이 아닙니다. 실용적인 관점에서 볼 때 MSDN 예는 잘못되었습니다. 이 예제는 도구 설명을 구성 요소로 사용하는 방법이 아니라 컨트롤로 도구 설명을 만드는 방법을 보여줍니다. 이를 구성 요소로 사용하려고합니다. – AMissico

답변

0

D3D 비디오 및 툴팁 모두 오버레이 (이 때문에 툴팁을 캡처하지 않는 스크린 캡처 프로그램의 수!)를 사용합니다. 그래서 나는 당신이 D3D 오버레이로부터 어떤 간섭을보고 있다고 믿는다.

비디오가 재생 중 렌더링되므로 툴팁이 너무 짙게 묘사되어있을 수 있습니다. 따라서 툴팁이 나타나기 때문에 볼 수 없습니다.

그러나 초기 지연을 설정하면 갑자기 작동하게됩니다. 즉, InitialDelay는 툴팁이 처음 표시 될 때 툴팁에 적용되는 지연을 제어하므로 툴팁이 표시 할 오버레이 표면을 잡는 방법과 관련이있을 수 있습니다.

필자는 반복적으로 도구 설명을 지정하고 할당하는 대신 해결 방법으로 사용 하겠지만 다른 대답과 마찬가지로 리소스를 죽일 수 있습니다.

내가 할 수있는 가능한 가장 작은 InitialDelay가 작동한다는 것을 알았습니다.

마지막으로 우리는 여기서 어떤 Windows 및 DX 버전을 사용합니까? here을 시작하고 그 안에 GameDev에 대한 링크에 툴팁 및 DirectX 관련 문제에 대한 몇 가지 다른 스레드가 있습니다. 그리고 약간의 .Net 별난 이상으로 여기에 더 많은 것이있을 수 있다는 사실을 지적하십시오!

0

ToolTip 구성 요소 (Windows Forms) (http://msdn.microsoft.com/en-us/library/he23h308(VS.85).aspx)을 참조하십시오. 자세한 내용은 을 확인하십시오. 방법 : 디자인 타임에 Windows Form의 컨트롤에 대한 도구 설명 설정http://msdn.microsoft.com/en-us/library/s894w4aa(VS.80).aspx으로 설정하십시오.

툴팁을 올바르게 사용하고 있지 않습니다. 링크 된 예제는 도구 설명을 사용하는 방법이 아니라 도구 설명을 만드는 방법 만 보여줍니다.

0

수정하십시오. 일해야한다. 이러한 모든 속성을 설정해야합니다.

  // Create the ToolTip and associate with the Form container. 
      ToolTip toolTip = new ToolTip(); 

      // Set up the delays for the ToolTip. 
      toolTip.AutoPopDelay = 15000; 
      toolTip.InitialDelay = 300; 
      toolTip.ReshowDelay = 300; 
      // Force the ToolTip text to be displayed whether or not the form is active. 
      toolTip.ShowAlways = true; 

      // Set up the ToolTip text for the Buttons 
      toolTip.SetToolTip(this.button2, "TooltipText1"); 
      toolTip.SetToolTip(this.button3, "TooltipText2");