2013-09-29 5 views
0

제 질문은 DevExpress (C#) 컨트롤을 사용하는 응용 프로그램의 힌트에 대한 가시성과 관련이 있습니다. 응용 프로그램에는 여러 컨트롤이있는 패널이 있으며 주어진 순간에만 하나의 컨트롤이 나타납니다. 사용자는 컨트롤을 전환하여 표시 할 컨트롤을 선택할 수 있습니다. 컨트롤에는 여러 개의 버튼이있는 막대가 있습니다 (각 컨트롤 유형마다 다른 버튼).힌트가 커서 위에있을 때 왜 보이지 않습니까?

마우스 커서가 위에있을 때 버튼에 대한 힌트가 나타나지 않는 것이 문제입니다. 응용 프로그램을 연 후에 표시되지만 사용자가 동일한 유형의 컨트롤로 전환하면 힌트가 표시되지 않습니다. 사용자가 다른 유형의 컨트롤로 전환하면 힌트가 나타날 수 있지만 항상 그런 것은 아닙니다 (규칙을 찾을 수 없음). 그러나 항상 사용자가 다른 응용 프로그램의 창으로 이동하여 반환하면 힌트가 나타납니다. 막대 관리자의 속성 ShowScreenTipsInToolbars은 프로그램 실행 중 값이 true입니다.

이 이상한 동작의 원인을 알고 계십니까? 마우스 커서가 버튼 위에있을 때 힌트를 항상 보이게하려면 어떻게해야합니까? 나는 응용 프로그램의 저자가 아닙니다. (문제를 해결할 수 있는지 묻는 질문을 받았습니다.) 기술적 인 세부 사항을 너무 많이 제공 할 수는 없습니다.

답변

0

컨트롤에 포커스가없는 경우 해당 컨트롤의 자식은 마우스가 마우스 위로 가리키고 있다는 것을 인식하지 못합니다. 따라서 도구 팁을 얻지 못합니다. 이것은 포커스가 컨트롤에 전달 될 때까지 (대개 컨트롤의 범위 내에서 왼쪽 클릭으로) 발생합니다.

코드를 보지 않고도 컨트롤 가시성을 전환하는 코드가 무엇이든간에 눈에 보이는 컨트롤에 포커스가 있는지 보장 할 수는 없습니다. Control.Focus()에 대한 설명서는 여기에 도움이 될 수 있습니다 (Control.Focus() 메서드의 포커스 설정 기능에 예외가 있음을 유의하십시오).

관련 문제