본문 바로가기
소프트웨어/3rd Part

UltraWinTree 클릭후 포커스 Enter/Out 시 색상지정

by 알 수 없는 사용자 2009. 3. 2.
320x100
Infragistics 포럼을 참고하였습니다.
http://forums.infragistics.com/forums/t/17453.aspx


Infragistics의 컨트롤중 UltraWinTree라는 트리컨트롤이 있습니다.
얼마전 이걸 누르면 해당되는 폼이 뜨게 만들었습니다.
그런데 왜이래 아마추어같이 =ㅅ=;;

선택한 포커스가 안나오는 겁니다. 폼이 뜨면서 없어지나 싶어서 Click이벤트에다가 ActiveNode.Selected = ture; 라고 했습니다.
디버깅해보니 벌써 클릭했으니깐 ture 값인겁니다.

뭔가 삽질하고 있다는 직감!!! ( 뻘찟하고 있을때는 생각좀하면서 작업을하는 게 좋아요 )
포럼에 활성화 어쩌구 찾아보니 친절하게 비슷한 case를 찾아서 팁으로 적어둡니다 ^^







//선언부

private Infragistics.Win.Appearance focusedAppearance = new Infragistics.Win.Appearance();
private Infragistics.Win.Appearance notFocusedAppearance = new Infragistics.Win.Appearance();


// 포커스가 트리에 있을경우 색깔지정

this.notFocusedAppearance.BackColor = SystemColors.ControlDark;

// 포커스가 트리에 있지 않을 경우 색깔지정
this.focusedAppearance.BackColor = SystemColors.Highlight;


// 클릭시 이벤트 설정

this.ultraTree1.Override.SelectedNodeAppearance = this.focusedAppearance;
this.ultraTree1.Enter += new EventHandler(this.ultraTree1_Enter);
this.ultraTree1.Leave += new EventHandler(this.ultraTree1_Leave);
this.ultraTree1.HideSelection = false;

private void ultraTree1_Leave(object sender, EventArgs e)
{
    UltraTree tree = sender as UltraTree;
    tree.Override.SelectedNodeAppearance = this.notFocusedAppearance;
}

private void ultraTree1_Enter(object sender, EventArgs e)
{
    UltraTree tree = sender as UltraTree;
    tree.Override.SelectedNodeAppearance = this.focusedAppearance;           
}



보시는 것처럼 간단합니다.
트리를 클릭할때 색깔지정을 해주고 트리이외 폼을 클릭했을때 (포커스가 없을경우) 색깔을 지정해주는 방법입니다.



댓글