![]() |
#1 |
Listbox (Liste Kutusu)
Listbox Nesneleri
Birçok elemanı liste biçiminde göstermek için kullanılır ListBox : Arayüz içinde basit anlamda (tek sütun) listeleri görüntülemekte kullanılan nesnelerdir. ListBox nesnesi içindeki liste elemanları ekrana sığmayacak kadar fazlaysa ListBox nesnesinin sağ tarafında düşey bir kaydırma çubuğu belirir ve bu sayede listenin bütün elemanları görüntülenebilir. Kullanıcı ListBox nesnesindeki bir elemanı seçebileceği gibi duruma göre birden fazla elemanı seçmesi de istenebirilir. ListBox nesnesinin en önemli metodları ve özellikleri aşağıda listelenmiştir. Ayrıca liste elemanlarının görünmeyen bir değerleri vardır. Görünen değer bir String değerdir fakat görünmeyen değer bir Long değerdir. Özellikleri ListIndex : Tek seçimli modda seçili olan liste elemanının, çoklu seçim modunda en son seçilen liste elemanının index numarasını saklar. Türü Integer'dır. 1. Liste elemanının ListIndex değeri 0'dır. n. elemanın ListIndex değeri n-1 dir. ListCount : Liste elemanlarının sayısını verir. Türü Integer'dır. Text : Seçili Liste elemanın görünen liste değerini verir ve değiştirir. Türü String'dir. ItemData([ListIndex]) : ListIndex değeri ile belirtilen liste elemanının görünmeyen değerini verir ve değiştirir. Türü Long'dur. Selected([ListIndex]) : ListIndex değeri ile belirtilen liste elemanın seçli olup olmadığını belirtir ve atar. Türü Boolean'dır. Sorted : Liste elemanlarının görünen değerlerine göre sıralanıp sıralanmayacağını belirtildiği özelliktir. Türü Boolean'dır. List([ListIndex]) : ListIndex değeri ile belirtilen liste elemanının görünen değerini verir ve değiştirir. MultiSelect : Kullanıcının liste içinde birden fazla kayıt seçip seçemeyeceğini belirtildiği özelliktir. Türü Integer'dır. Metodları Clear : Liste içindeki bütün elemanları silen metoddur. ListBox1.Clear AddItem [Görünen Değer] : Görünen değeri parametre olarak alan bu metod ile listeye eleman eklenir. ListBox1.AddItem "Visual Basic" Refresh : Listenin ekran görüntüsünü güncelleyen metoddur. ListBox1.Refresh RemoveItem([ListIndex]) : ListIndex ile belirtilen liste elemanını listeden siler. ListBox1.Remove(0) ListBox'a veri ekleme prosedürü Öncelikle yeni bir proje açın ve 1 adet commandbuton, 1 adet textbox ve 1 adet listbox ekleyin. Aşağıdaki kodları kullanabilirsiniz. Private Sub Command1_Click() If EkleListBox(Text1, List1) = True Then Call MsgBox("Veri eklendi.", vbOKOnly, "Cheet@H") Else Call MsgBox("Veri daha önceden eklenmiş!", vbCritical, "Cheet@H") End If End Sub Public Function EkleListBox(ByVal Veri As String, ByVal Obje As Object) As Boolean Dim Yi& Veri = Trim(Veri) For Yi = 1 To Obje.ListCount If Veri = Obje.List(Yi - 1) Then EkleListBox = False Exit Function End If Next Obje.AddItem Veri EkleListBox = True End Function 'EkleListBox' Fonksiyonun açıklaması: Fonksiyona iki değer yollanıp boolean bir değer ya 'True' ya da 'False' döndürmesi bekleniyor. Veri değeri listbox objesine eklenmek istenen değeri Obje ise eklenecek listbox (bu comboboxta olabilir) ismini simgeliyor. Eğer 'Veri' değeri objede var ise fonksiyona false atanıp çıkılıyor. Listbox ta tüm değerlere bakılıp veri değeri bulunamadı ise fonksiyona true değeri atanıp listbox a o değer ekleniyor. Listbox'a bir text dosyasi içerigi nasıl yüklenir? Private Sub Command1_Click() Dim BulunanKelimeler As String Open "C:\test.txt" For Input As #1 List1.Clear While Not EOF(1) Input #1, StringHold List1.AddItem BulunanKelimeler Wend Close #1 End Sub Listbox'a aralıklı (tab) öğeler ekleyin Listbox'ın TabWidth özelliğini 100 olarak girin. Bu aradaki boşluğu belirtir. Daha Sonra eklemek istediğiniz öğeler arasına ^I (Tab karakteri) koyarak öğeleri ekleyin. Listbox1.Items.Add ('Bir'^I'İki'^I'Üç'); CHECKEDLISTBOX: CheckedListBox, listbox ile checkboxın birleşiminden oluşmuştur. • CheckOnClick: Oboşluğa tıklamadan, o yazının üzerine tıklandığında da seçilmesini sağlıyor. • HorizontalScrollBar: Yazılar çok uzun ise okumak için sağa çekmek amacıyla scrollbar koyar. • Items: İşte en önemli seçenek bence. Buradan maddeleri yazıyoruz. • Sorted: İçeriğine yazdığınız tüm maddeleri(items) alfabetik olarak sıraya dizer. LİSTBOX: • Items: Buradan maddeleri yazıyoruz. • SelectionMode: Birden fazla seçime izin vermeye yarıyor. Appeance BackColor CausesValidation Columns Container DataChanged DataField DataFormat DataMember DataSource DragIcon DragMode Enabled Font FontBold FontItalıc FontName FontSize FontStrikethru FontUnderline ForeColor Height HelpContextID HideSelection HWnd Index IntegralHeight ItemData Left List ListCount ListIndex ListItem MouseIcon MousePointer MultiSelect Name NewIndex OleDragMode Parent RightToLeft SelCount Selected Sorted Style TabIndex TabStop Tag Text ToolTipText Top TopIndex Visible WhatsThisHelpID Width ListBox - Özellikler Columns : Sütun sayısı ( 0 - 1 sütün, 1 - 2 sütun ) IntegralHeight : ListBox boyutun font büyüklüğüne göre ayarlanması List : Dizi değişken. ListBox'da yer alan elemanlar ListCount : ListBox'daki elemansayısı ListIndex : Seçili elemanın sıra numarası ListItem : Listede seçili olan elemanın sırası (-1 0 İlk eleman seçili)Seçim yok, MultiSelect : Aynı anda birden fazla seçim yapılıp yapılamayacağı SelCount : Seçili eleman sayısı Selected : Seçilmesi istenen eleman Sorted : ListBox içerisinde sıralama yapılıp yapılmayacağı Style : ListBox'un stili ListBox - Olaylar Click DblClick DragDrop DragOver GotFocus ItemCheck KeyDown KeyPress LostFocus MouseDown MouseMove MouseUp OleCompleteDrag OleDragDrop OleDragOver OleGiveFeedBack OleSetData OleStartDrag Scroll Validate ListBox - Yöntemler AddItem Clear Drag Move NewIndex Refresh RemoveItem SetFocus ShowWhatsThis TopIndex ZOrder AddItem : Listeye ekleme Clear : Listenin tamamının silme NewIndex : Listeye eklenen son elemanın indeks numarası RemoveItem : Listeden silme TopIndex : Görülen en üstteki elemanın indeks numarası Text Dosya İçeriğini ListBox’a Eklemek Private Sub Command1_Click() Dim Eklenecek As String Open "c:\sil.txt" For Input As #1 List1.Clear While Not EOF(1) Input #1, Eklenecek List1.AddItem Eklenecek Wend List1.Refresh Close #1 End Sub TextBox İçeriğini ListBox’a Eklemek (General)(Declaration) Option Explicit Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long) Const EM_GETLINECOUNT = &HBA Const EM_GETLINE = &HC4 Private Sub Command1_Click() Dim lCount As Long, l As Long, i As Integer, k As Long, a$ lCount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0, ByVal 0) If lCount = 0 Then Exit Sub ReDim aLines(1 To lCount) As String i = 512 a$ = Space$(512) List1.Clear For l = 0 To lCount - 1 Call CopyMemory(ByVal a$, i, 2) k = SendMessage(Text1.hwnd, EM_GETLINE, l, ByVal a$) aLines(l + 1) = Left$(a$, k) List1.AddItem aLines(l + 1) Next End Sub |
|
![]() |
![]() |
![]() |
Etiketler |
kutusu, listbox, liste |
|
|