2016-04-29 67 views
1

我想作爲選擇設置一個ListView的所有項目,使用C#的ListView全選選擇顏色

foreach (ListViewItem item in this.m_lvFiles.Items) 
{ 
    item.Selected = true; 
} 

和工作原理。然而,列表框看起來像是 Select All, programatically(所有項目的背景顏色都是白色的)。 如果我手動選擇這些項目,背景顏色爲藍色,如第二張圖像(Select All, manually)。

HideSelection=False, FullRowSelection=True, MultiSelect=True. 

問題:有沒有一種方法可以讓編程選擇的項目,如他們手動選擇?

或者在ListView中有錯誤嗎?

回答

1

根據您的應用程序的重點所在,選擇可能不會顯示爲「藍色」。選擇每個項目後,設置焦點回到列表視圖將每個項目的背景「藍色」:

m_lvFiles.Focus(); 

假設這是一個雙贏的形式應用...

+0

謝謝denvercoder9,這是一個獲獎形式的應用程序,但只是調用Focus()似乎沒有幫助(我不會有其他要求)。 –

1

有一個關於它的相關疑問,可以幫助你:

Here

public static void SetItemState(ListView list, int itemIndex, int mask, int value) { 
    LVITEM lvItem = new LVITEM(); 
    lvItem.stateMask = mask; 
    lvItem.state = value; 
    SendMessageLVItem(list.Handle, LVM_SETITEMSTATE, itemIndex, ref lvItem); 
} 

我希望它能幫助你

+0

感謝Nestoraj,你能指定如何使用這個功能嗎? 'mask'和'value'應具有哪些值? 代碼片段是最好的。 –