2010-11-20 14 views
5

çizmek mümkün mü NET 2.0 System.Windows.Forms.ListView denetimi kullanıyorum. ListView'de OwnerDraw özelliğini true olarak ayarlayabildiğimi ve sonra da ListViewItems öğemi özel çizmek için OnDrawItem'i geçersiz kılabileceğimi biliyorum. Bu bileşenleri çizmek için OnDrawColumnHeader ve OnDrawSubItem'i de geçersiz kılabilirim. Ancak, ListViewGroup'larımı özel olarak çizmek istesem geçersiz kılmak için eşdeğer bir "OnDrawGroup" yöntemi yoktur. Üste |Özel bir ListViewGroup

Bu denetimin kullandığı mesajlara bir göz attım ve WM_CUSTOMDRAW ve CDDS_ITEMPREPAINT bildirimlerinin olduğunu görüyorum, ancak bu yerel iletileri özel ListViewGroup'larımı çizmek için kullanmamın bir yolu olduğunu mu merak ediyorum?

cevap

2

Bunun yerleşik mekanizmayı kullanarak mümkün olduğuna inanmıyorum. Bence her şeyi kendin çizmelisin.

2

Sadece yapılamaz.

Her şeyi kendiniz çizerek veya WM_CUSTOMDRAW'u veya undocumented ListView interfaces ve used here'u kullanarak bile bırakarak yapamazsınız.

Bu tartışma birkaç kez ortaya çıktı (here for example). ListView'daki grup başlıkları garip yaratıklar. XP'de, kendi rengini (yazı tiplerini bile) en iyi şekilde ayarlayabilirsiniz, ancak Vista'dan bu yana yapabileceğiniz mutlak hiçbir şey yoktur.

İlgili konular