2008-08-17 22 views
7

ListView denetimim var ve seçili satırları değiştirmeye izin vermenin en kolay/en iyi yolunu, gizleme satır (ler).Liste Görünümü'nü devre dışı bırakma ama hala geçerli seçimi gösterme

HideSelection özelliğinin bulunduğunu biliyorum, ancak bu yalnızca ListView hala etkinken (ancak odaklanmadığında) çalışıyor. ListView devre dışı bırakıldığında bile görüntülenebilmesi için seçime ihtiyacım var.

Bunu nasıl uygulayabilirim?

cevap

2

Ayrıca ListView sahipliğini de oluşturabilirsiniz. Daha sonra, öğelerin seçilip seçilmediğine veya ListView'ün kendisinin etkin olup olmadığına bakıp bakmadığına dair tam kontrole sahipsiniz. DrawListViewItemEventArgs, ListView'den öğenin tek tek bölümlerini çizmesini istemenizin bir yolunu sunar, böylece yalnızca ilgilendiğiniz bitleri çizmeniz gerekir. Örneğin, öğenin arka planını çizebilir, ancak çizim yapmak için ListView'a bırakabilirsiniz. Metin.

1

İki seçenek vardır, seçili satırlar devre dışı bırakılmış renkleri değiştirin. Veya seçili olanın dışında devre dışı bırakıldıklarını taklit etmek için diğer tüm satırları değiştirin. İlk seçenek belli ki en kolay ve ikinci seçenek de bazı ekstra korumalara ihtiyaç duyuyor.

Daha önce ilk seçeneği yaptım ve oldukça iyi çalışıyor. Süreçte daha sonra başka bir satırın seçili olması durumunda renkleri varsayılanlara geri döndürmeyi hatırlamanız yeterlidir.

0

SelectedIndexChanged uygulanması ve bu

private void listViewABC_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     listViewABC.SelectedItems.Clear(); 
    } 
yapmak
İlgili konular