2012-07-30 3 views
1

ListView에서 단 하나 또는 두 개의 항목에 대한 소유자 그리기를 구현하고 싶습니다.ListViewViewItemEventArgs.DrawDefault Property on ListView

DrawListViewItemEventArgs.DrawDefault 속성을 찾았지만 사용법이 명확하지 않습니다. MSDN example for this property은 단순히 값을 인쇄하기 때문에 사용 방법을 이해하는 데 전혀 도움이되지 않습니다.

DrawItem()을 호출 할 때마다이 속성을 설정해야하나요, 그렇지 않으면 내가 소유자가 그리지 않을 항목에 대해이 값을 설정할 수있는 방법이 있습니까? 내 기억이 제대로 날을 제공하는 경우

답변

1

당신은 true로 설정해야합니다. DrawItem 이벤트 핸들러가 반환 된 후에 발생합니다. 그리고 당신이 그렸던 어떤 것도 지나치게 끌 것입니다.

일반적이지는 않지만 일반적으로 이벤트를 구현하여 항목을 다른 방식으로 그립니다. 기본 사용을 false로 설정하면 이벤트 처리기가 완료된 후에 더 이상 그림이 표시되지 않습니다.

+0

좋습니다. 'DrawItem()'이 반환 된 후에 플래그가 체크되고이 속성이 true이면 그 시점에 기본 드로잉이 수행됩니다. 이렇게하면 기본 드로잉 코드를 사용하여 어떤 항목을 그려야하는지에 대한 임의의 복잡한 제어가 가능합니다. –

1

당신이 뭔가를 할 필요가 : 당신이 일어날 그리기 일반 목록보기 항목을 경우에만

private void ListView1_DrawItem(Object sender, DrawListViewItemEventArgs e) { 
    if (mycustomdraw) // Do we need to draw it or use the default drawing 
    { 
    e.DrawDefault = false; // This may be set to false by default 
    // Draw the list item here 
    } 
    else 
    e.DrawDefault = true; // Tell the listview to use the default drawing 
}