我想在ListView中只實現一個或兩個項目的所有者繪製。我發現DrawListViewItemEventArgs.DrawDefault
財產,但我不清楚它的用途。 MSDN example for this property只是打印它的值,這對理解它的使用方式完全沒有用處。ListList上的DrawListViewItemEventArgs.DrawDefault屬性
我是否需要設置此屬性是每次致電DrawItem()
,或者有沒有辦法將這些設置爲我不希望所有者繪製的項目?
我想在ListView中只實現一個或兩個項目的所有者繪製。我發現DrawListViewItemEventArgs.DrawDefault
財產,但我不清楚它的用途。 MSDN example for this property只是打印它的值,這對理解它的使用方式完全沒有用處。ListList上的DrawListViewItemEventArgs.DrawDefault屬性
我是否需要設置此屬性是每次致電DrawItem()
,或者有沒有辦法將這些設置爲我不希望所有者繪製的項目?
你應該把它設置爲true,只有當你想正常的ListView項繪製的情況發生。在您的DrawItem事件處理程序返回後發生。並且會畫出你畫的任何東西。
這不是典型的,你通常實現事件以不同的方式繪製項目。這使默認值false成爲正常使用情況,在您的事件處理程序完成後不會再發生繪圖。
如果我沒有記錯的話,你需要做這樣的事情:
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
}
好的,這是有道理的。該標誌在'DrawItem()'返回後被檢查,並且如果該屬性爲true,則默認繪圖將在那時發生。這允許使用默認繪圖代碼對應繪製哪些項目進行任意複雜的控制。 – 2012-07-30 18:07:08