2008-09-11 12 views
4

bazı örnekler (Ctrl - +)^+ düğme kombinasyonu Win32 API kullanarak ya da simüle buldum using SendKeys, ama en azından TuşGönder yöntemi ile liste görünümü imleç alır ve I kadar bir kum saati için ayarlar klavyemde başlat düğmesine basın. Bunu yapmanın en temiz yolu nedir? Eğer -1 olarak sütun genişliği ayarlarsanızListView’ün sütunlarını program aracılığıyla otomatik olarak yeniden boyutlandırabilir miyim?

+0

"Otomatik yeniden boyutlandırma" ifadesinin anlamı nedir? Pencerenin (ve liste görünümünün) boyutunu değiştirdiğinde bunların karışık olmasını mı istediğinizi mi yoksa gösterildikleri verilerin uzunluğuna göre yeniden boyutlandırılmasını mı istiyorsunuz? – Andrew

+0

Gösterildikleri verilerin uzunluğuna göre yeniden boyutlandırılmasını istiyorum. – Luke

cevap

17

istediğini yapacak myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent) bir çağrı gibi görünüyor en geniş öğeye otomatik olarak boyutlandırma edecektir. Düşünürdüm, sadece bir ürün ekledikten sonra onu çağır. Tüm sütun ve set genişliği boyunca

diğer bilgiler here

+1

ColumnHeaderAutoResizeStyle :: ColumnContent Ol – Julien

+0

Bağlantı kesildi. –

+0

@CareyGregory teşekkürler, güncel link –

1

MSDN göre, o zaman

+0

Bu benim için çalışmıyor gibi görünüyor. Çalışma zamanı listviewitems ekliyorum ve sütunlar sıska kalıyor. – Luke

+0

Garip. Belki de ListView'in görünür olması ve zaten eklenen öğelerle birlikte olması gerekir. Ya da belki de Application.DoEvents öğesine yapılan bir çağrı hile yapabilir mi? Her zaman P/Invoke kullanarak LVSCW_AUTOSIZE göndermeyi deneyebilirsiniz: http://vbnet.mvps.org/index.html?code/comctl/lvcolumnautosize.htm (VB6 bağlantısı) – rpetrich

+0

Liste görünümü güncellemelerini BeginUpdate()/EndUpdate() parantezleri? Belki de -1 hilesi, güncellemeyi özellikle sonlandırdığınızda, liste görünümünün görüntülenme şeklini yeniden hesapladığınızda çalışır. – Andrew

0

döngü içerik ilave edildikten sonra -1.

İlgili konular