• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ListView ile ListBox kontrol

Katılım
19 Ağustos 2005
Mesajlar
201
Excel Vers. ve Dili
Excel 2003 Tr
ekte forumda bulduğum bir dosya var

Bildiğim kadarı ile ListBox a başlık satırını ekliyemiyoruz. Bunun yerine başlık satırını ListView e alsak diğer bilgiler ListBox ta sıralansa çalışmalarımız ListBox ile devam etse ancak ListView deki kaydırma çubuğunu sağa sola kaydırdığımızda ListBox daki bilgilerde aynı sıralama ile kaysa mümkünmü acaba

ListView sadece A1:E1 bilgisini alacak
 
İsteğim excel mantığına pek uymuyor herhalde cevap gelmediğine göre :D
 
ListBox'ta başlık sütunu

ColumnHeads özelliğini "True" yaparak başlıkların görünmesini sağlayabilirsiniz.
 
Sayın eterzan True yapınca evet ilk satıra alıyor ama kaydırma çubuğu ile ListBox içerisindeki verileri aşağıya indirince haliyle ilk satırda görünmez oluyor. Bunu engellemek için başlık satırının ColumnHeads True olduktan sonra açılan hücreye geçmesi ve sabit kalmasını istiyorum. Ben beceremedim :(
 
Yani siz Excel'deki sütun-satırları dondur özelliği gibi bir özellik arıyorsunuz. VBA'daki ListBox'ta böyle bir durumun mümkün olacağını sanmıyorum. Böyle durumları bende ListBox'ın üzerine başlıkları Label'lara yazarak çözüyorum.

Kolay gelsin.
 
ListBox üzerine Label ile başlık atmak sorun değil ama başlık 30 tane userform da ne kadarını koyacaksın ve sağa doğru kaydırdığında ne olacak örnekteki gibi 5 tane olsa sorun değil
 
Kaydırma için değil de, sütun başlıklarının genişliği için aşağıdaki kodları kullanabilirsiniz. Sütun genişlikleririni ayarladıktan sonra, liste göstericisindeki sütun başlıklarından herhengi birini tıklamanız yeterli. Ben kodları sütun başlıklarını tıklama olayına yazrdım; ama siz farklı bir yere de (Liste kutusunu tıklamak gibi) tanımlayabilirsiniz. Sütun başlıklarıyla eş zamanlı işleyecek bir yöntem olduğunu sanmıyorum.

Ayrıca niçin sadece liste götericisini (Listview) kullanmak yerine, liste kutusunu kullanmak istediğinizi de merak ettim doğrusu. Liste kutusuyla yapabildiklerinizi -belki de daha fazlasını- liste götericisi ile de yapabilirsiniz.

Kod:
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
a1 = ListView1.ColumnHeaders(1).Width
a2 = ListView1.ColumnHeaders(2).Width
a3 = ListView1.ColumnHeaders(3).Width
a4 = ListView1.ColumnHeaders(4).Width
a5 = ListView1.ColumnHeaders(5).Width
ListBox1.ColumnWidths = a1 & "," & a2 & "," & a3 & "," & a4 & "," & a5
End Sub

(Açıklama: Yukarıdaki kodları, sütun başlıklarının genişliği için istediğinizi düşünerek hazırlamıştım. Yanlış anlamışım, asıl isteğinizi sonradan fark ettim.)
 
Son düzenleme:
Sayın Mesleki sütun genişliğini Form Initialize içerisine
ListBox1.ColumnWidths = "30;51;75;82;120;45;35;35;57;42;55 ....................." ekliyerek ayarlıyorum.

Benim istediğim süz işlemi bittiğinde bazı verilerden aşağıya doğru 100-150 kadar olduğu ve kaydırma yaptığımızda başlık sütunu olmadığı için hangi verinin neye denk geldiğini karıştırmamak
Son olarak neden ListView yerine ListBox kullandığım ise 2 ayda yaklaşık 2400 satırlık veri girişi yaptım. Bunun devam edeceğini göz önüne alarak süz işlemi ne kadar hızlı olursa o kadar iyi olur ve ListView her ne kadar daha kullanışlı olsada ListBox görüntü almada ve işlem yapmada daha hızlı çalışıyor gibi geldi bana
 
Geri
Üst