2009-02-18 9 views

cevap

5

İleride, burada ben onu çözdüm nasıl:

// Make owner-drawn to be able to give different alignments to single subitems 
lvResult.OwnerDraw = true; 
... 

// Handle DrawSubItem event 
private void lvResult_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) 
{ 
    // This is the default text alignment 
    TextFormatFlags flags = TextFormatFlags.Left; 

    // Align text on the right for the subitems after row 11 in the 
    // first column 
    if (e.ColumnIndex == 0 && e.Item.Index > 11) 
    { 
     flags = TextFormatFlags.Right; 
    } 

    e.DrawText(flags); 
} 

// Handle DrawColumnHeader event 
private void lvResult_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) 
{ 
    // Draw the column header normally 
    e.DrawDefault = true; 
    e.DrawBackground(); 
    e.DrawText(); 
} 

O DrawColumnHeader işlemek için gerekli olduğunu, aksi takdirde hiçbir metin veya sütun ayırıcılar çizilmiş olacaktır.

9

"ColumnHeader" sınıfı, kolondaki tüm alt öğeler için hizalamayı değiştirecek bir "TextAlign" özelliğine sahiptir. Daha süslü bir şeye ihtiyacınız varsa, her zaman "DrawSubItem" etkinliğini kullanabilir ve sahibin çizilmesini sağlayabilirsiniz.

+0

Evet, daha süslü bir şeye ihtiyacım var, ve "tek alt öğe" ve "aynı sütundaki metin farklı şekilde hizalanmış" ifadesini ima etmeye çalıştığım şey buydu. "DrawSubItem" olayına bir göz atacağım. – Fueled

+0

Cevabınızı kabul edileni olarak kabul edemem çünkü sorduğum sorunun düzgün okunmadığını ve herhangi bir kod örneği vermediğinizi hissediyorum. Ama, bana doğru yönde işaret ettiği için seni oylandırdım. Teşekkürler! – Fueled

7

örnek:

listView1.Columns[1].TextAlign = HorizontalAlignment.Right; 

doğru

6

Not sütunun "1" hizalama ayarlanır: nedeniyle, temel yerel liste görünümü kontrolü (comctl32.dll yaşayan) 'in bir sınırlaması nedeniyle, ilk sütun hizalanamaz. Her zaman sola hizalı olacak. İkinci sınırlama, özel çizim (özel çizim alt öğeleri): sütun yeniden sıralamayı etkinleştirdiğinizde, ilk sütunun metninin doğru olarak yeniden sipariş edilmemesidir. Bu kısıtlamayı çözdüm (bir hata değil, liste görünümü birçok liste stilini ve liste görünümünün iç veri yapısını destekleyen bir ağaçtır) ilk sütunu yeniden sıralamaya izin vermeyerek, çoğu durumda sorun değil Çünkü ilk sütun gibi bir tür anahtar veya benzer bir şey kullanacaksınız.

İlgili konular