2009-11-23 4 views
1

SelectedNodenull으로 설정하면 트리가 올바르게 업데이트되지만 BeforeSelectAfterSelect은 실행되지 않습니다.TreeView.SelectedNode = null을 설정할 때 어떤 이벤트를 사용할 수 있습니까?

선택 항목이 언제 null로 변경되었는지 알 수있는 방법이 있습니까?

내 첫 번째 생각은 컨트롤을 확장하고 이벤트를 추가하는 것이지만 이미 사용할 수있을 것이라고 생각했을 것입니다.

답변

1

귀하의 해결책이 좋다고 생각합니다.

http://treeviewadv.sourceforge.net/

+0

안녕하세요 Sorin, 아마도 이것이 아주 좋은 해결책이라고 생각합니다. 어제 솔루션을 구현하지 않았다면 해결할 수있을 것입니다. 그러나 해결책을 표시하고 있습니다. 같은 문제를 해결하고자하는 다른 사용자의 답변으로 볼 수 있지만 아직까지는이 컨트롤을 아직 테스트하지 않았 음을 이해하시기 바랍니다. –

1

내가 할 수있는 유일한 방법은 새 컨트롤을 만들고 OnAfterSelectOnBeforeSelect도 호출되지 않는 SelectedNode에 대한 새 구현을 제공하는 것 같습니다.

public new TreeNode SelectedNode { 
    get { return base.SelectedNode; } 
    set { 
     // Remember, if `value' is not null this will be called in `base'. 
     if (value == null) { 
      TreeViewCancelEventArgs args 
       = new TreeViewCancelEventArgs(value, false, TreeViewAction.Unknown); 
      OnBeforeSelect(args); 
      if (args.Cancel) 
       return; 
     } 
     base.SelectedNode = value; 
     // Remember, if `value' is not null this will be called in `base'. 
     if (value == null) { 
      OnAfterSelect(new TreeViewEventArgs(value, TreeViewAction.Unknown)); 
     } 
    } 
} 
+0

은 같아 ... 당신이 찾고있는 무엇을 지원 어쩌면 너무 다른 케이크를 가지고있는 그러나, 난 그냥이 컨트롤 (SO의 오른쪽 열 :)에 주시를) 발견 나에게 좋은 해결 방법이지만 질문은 왜 MS가 이것을 처음부터 구현하지 않았는가? 뭔가 내려다 보죠? –

+0

MS가 Sorin을 많이 바라 보았다;) –

관련 문제