Liste Çoklu Seçim

1 2
10/04/2021, 09:05

aliyorga

Ekteki misalde form1 içindeki liste0 çoklu seçim olarak (özellikler, diğer, çoklu seçim=yok olarak ayarlandı). Yani listeden sadece bir satırı seçebiliyorsunuz. Özelliklerden çoklu seçimi = basit yaparsak listeden birden fazla seçim yapabiliyoruz. Baştan çoklu seçimi yok deyip program içerisinde bu özelliği nasıl değiştiririz. Liste110.multiselect=1 olarak komut düğmesi altına yazdım lakin kabul etmiyor hata veriyor. Bu işlemi kod kısmında bir komut düğmesi altında nasıl yaparız?
10/04/2021, 11:13

berduş

galiba bu özellik sadece tasarım modunda değiştirilebiliyormuş. ama biraz dolambaçlı bir yolla istediğiniz belki yapılabilir
forma bir boolean/evet-hayır değişkeni tanımlanır bu değer başlangıçta evet olur siz düğmeye basınca hayıra döner liste tıklama olayı da bu değikene göre işlem yapar
10/04/2021, 11:28

berduş

liste kutusu çoklu seçime izin verilmeli
formdaki kodlar
Option Compare Database ' bu kod zaten var
Dim Coklu As Boolean  '<--bu değişken eklenecek
form yüklenirken değer atama
Private Sub Form_Load()
Coklu = True
End Sub
butonla çoklu/tekli yapma
Private Sub Komut2_Click()
Coklu = -1 - (Coklu)
If Coklu = False Then
Dim Itm As Variant
For Each Itm In Liste0.ItemsSelected
Liste0.Selected(Itm) = False
Next Itm
End If
End Sub
liste tıklama/seçme olayı
Private Sub Liste0_Click()

If Coklu = False Then
With Me.Liste0
i = .ListIndex
Dim Itm As Variant
For Each Itm In .ItemsSelected
.Selected(Itm) = False
Next Itm
.Selected(i) = True
End With
End If
End Sub

istenirse buton tıklama olayına tek seçim yap/çoklu seçim yap gibi buton başlığı da eklenebilir
Aslında değişkene bile gerek yok doğrudan buton yazısına göre de işlem yapılabilir.
10/04/2021, 15:57

aliyorga

Sayın Berduş ya çalıştıramadım yada bir yerde hata var. Ben de Listenin tasarım görünümünde çoklu seçimde "uzatılmış" seçerek işe devam ediyorum.
10/04/2021, 16:27

berduş

aşağıdaki dosyayı dener misiniz?
sizin dosyanızda yaptiğım değişiklikler
1 - liste kutusu çoklu seçimli oldu
2 - sadece önceki mesajda yer alan kodlar eklendi
10/04/2021, 17:01

berduş

yada sadece aşağıdaki kodlar da kullanılabilir
not: buton ve liste kutusu aşağıdaki gibi düzenlenmiş olmalı
1 - Liste0 --> çoklu seçim: basit
2 - Komut2-->tag/im=0
buton tıklama olayı
Private Sub Komut2_Click()
Komut2.Tag = -1 - (Komut2.Tag)
If Komut2.Tag = False Then
Dim Itm As Variant
For Each Itm In Liste0.ItemsSelected
Liste0.Selected(Itm) = False
Next Itm
End If
End Sub
liste0 tıklama olayı
Private Sub Liste0_Click()

If Komut2.Tag = False Then
With Me.Liste0
i = .ListIndex
Dim Itm As Variant
For Each Itm In .ItemsSelected
.Selected(Itm) = False
Next Itm
.Selected(i) = True
End With
End If
End Sub
1 2