2009-08-07 3 views

답변

3

사용 StateImageListTreeNode.StateImageIndex를 사용하여 상자에서이 동작을 얻을 수 있어야합니다. 또한 MouseDown 이벤트에 가입하고 사용자가 상태 이미지를 클릭 할 때 검사 상태 (상태 이미지)를 변경해야합니다. 이 방법을 사용하면 예를 들어 3 가지 상태의 확인란을 에뮬레이션 할 수도 있습니다.

실제로 내부 TreeView 구현은 실제로 동일한 방법을 사용하지만 이것은 사용자에게 표시되지 않습니다.

private Image CreateCheckBoxGlyph(CheckBoxState state) 
{ 
    Bitmap Result = new Bitmap(imlCheck.ImageSize.Width, imlCheck.ImageSize.Height); 
    using (Graphics g = Graphics.FromImage(Result)) 
    { 
     Size GlyphSize = CheckBoxRenderer.GetGlyphSize(g, state); 
     CheckBoxRenderer.DrawCheckBox(g, 
      new Point((Result.Width - GlyphSize.Width)/2, (Result.Height - GlyphSize.Height)/2), state); 
    } 
    return Result; 
} 
0

제한적이고 버그가있어서 TreeView를 포기했습니다.

당신은 같은 목적을 위해 오픈 소스 TreeViewAdv

+2

은 무엇 버그는 트 리뷰에서 건너 않았다 CheckBoxState 기반으로의 ImageList에 대한 이미지를 만드는

방법? –

+0

실제로 네이티브 TreeView는 매우 강력하지만 TreeView는 새로운 Windows 릴리스가 나올 때마다 새로운 기능을 제공하기 때문에 많은 검사가 필요합니다. .Net 트리보기 래퍼는 모든 TreeView 잠재력을 사용하지 않으며 하위 클래스에 필요한 많은 고급 기능을 사용합니다. – arbiter

+0

잠시 지났지 만, 내가 기억하는 버그 중 하나는 상황에 따라 발사되지 않는 사건입니다. –