2009-07-29 9 views
1

좋아, 이것은 이상한 것입니다.마우스 오버 툴팁에 대한 WinForms의 하위 클래스 TreeView

TreeView 컨트롤의 예상되는 동작은 ShowNodeToolTips를 false로 설정하면 트리 노드의 레이블이 컨트롤의 너비를 초과 할 때 (또는 더 정확하게는 오른쪽 가장자리가 오른쪽을 지나면됩니다. 클라이언트 영역의 가장자리), 전체 항목의 텍스트를 보여주는 노드 위의 툴팁이 표시됩니다.

트리 뷰가 포함 된 내용에 따라 위의 의미가 항상 작동하지 않기 때문에이 기능을 사용하지 않으려합니다. 그래서 나는 내 자신을 굴려서 툴팁을 얻었습니다. (그리고 기본 툴보다 더 잘 맞 춥니 다.) -하지만 기본적으로 작동하는 상황에서 '기본'동작을 비활성화 할 수 있기를 원합니다.

그래서, 그 사람이 올바른 방향으로 그 메시지를 TreeView에 게시하려면 그 행동을 해제하려면 나를 가리킨 수 있습니까? 윈도우 컨트롤 레퍼런스를 살펴 봤지만 그럴 것 같지 않은 것을 찾지 못했습니다.

답변

0

미안하지만,별로 도움이되지 않는이 발견 ... 오히려 고통스러운 해결 방법으로 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=337872

, 내가 가진 유일한 제안은 항상 툴팁을 억제하기 위해 비어있는 텍스트를 설정하는 것입니다, 사용 표시 할 노드의 실제 텍스트를 저장하고 소유자가 직접 텍스트를 그리는 TreeNode.Tag 속성

1

이 시도 :

private const int TVS_NOTOOLTIPS = 0x80; 

protected override System.Windows.Forms.CreateParams CreateParams 
{ 
    get 
    { 
     CreateParams p = base.CreateParams; 
     p.Style = p.Style | TVS_NOTOOLTIPS; 
     return p; 
    } 
}