Q&A

  • 트리뷰가 포커스를 가지지 않아도 선택된 노드가 파란색이 되게 하는법?
트리뷰의 노드를 선택하면 선택된 노드가 파란색으로 변하잖아요.
그런데 다른 컨트롤로 포커스가 넘어가면 파란색으로 변하는게 사라집니다.(선택된 상태는 그대로)
트리뷰가 포커스를 가지지 않아도 파란색으로 선택된 상태가 남아있게 하는 방법이 있을까요?

고수분들께서 답변해 주시면 정말 감사하겠습니다. ㅠ
좋은 한 주일 되세요~
2  COMMENTS
  • Profile
    홍성락 2005.08.29 22:54

    ////////////////////////////////////////////////////////////////////////////
    //hsr
    CustomDrawItem 이벤트에서 아래와 같이 넣어보세요

    procedure TForm1.TreeView2CustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    var
        Rect : TRect;
    begin
            if cdsSelected in State then begin
               with (Sender as TTreeView).Canvas do begin
                    Brush.Color := clActiveCaption;;
                    FillRect(Rect);
               end;
            end;
    end;
  • Profile
    KDDG_BaSTaD 2005.08.29 22:38


    ==> 안녕하세요...
    기본적으로 선택된 노드가 파란색으로 되지는 않습니다.  혹시 Node가 Highlight 된다는것을 의미하는것 같네요...  선택된 노드가 포커스 이동으로 보이지 않아서 문제라면.. HideSelection Property를 False 로 바꿔보시면 Highlight 는 아니지만.. Selection Node는 구분할 수 있습니다.

    만약 포커스가 이동해도 Highlight 된것 처럼 보이기시길 원하시면 OwnerDraw를 하셔서 직접 배경과 폰트 색을 지정해서 그려주시면 됩니다.

    도움이 되셨길...