ListView Konum Sorunu??

Katılım
16 Haziran 2007
Mesajlar
163
Excel Vers. ve Dili
Excel 2003 - Türkçe
Merhaba;
Arkadaşlar Problemim 1 userform üzerinde Multipage lerle ayrılmış 4 adet ListView var userform ilk açıldığında aktif olan ListView yerinde duruyor ama diğer 3 ü birazdaha yukarı kayarak görüntüleniyor, page lerde gezinirken normal hale geliyor bunu nasıl düzeltebiliriz ekteki dosyayı inceleyince daha iyi anlıyacağınıza eminim.. yardımcı olabilirseniz çok müteşekkir kalırım...
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Merhaba;
Arkadaşlar Problemim 1 userform üzerinde Multipage lerle ayrılmış 4 adet ListView var userform ilk açıldığında aktif olan ListView yerinde duruyor ama diğer 3 ü birazdaha yukarı kayarak görüntüleniyor, page lerde gezinirken normal hale geliyor bunu nasıl düzeltebiliriz ekteki dosyayı inceleyince daha iyi anlıyacağınıza eminim.. yardımcı olabilirseniz çok müteşekkir kalırım...
Formunuzu inceledim, kesin çözüm değil belki ama bir seçenek olarak sunayım yine de:

madem ki liste göstericiler sayfalar ilk seçildiğinde yanlış yerde çıkıyor, ikinci seçmede bunların yerleri düzeliyor, userform_activate olayına aşağıda kodları ekleyip, form faal hale geldiğinde bu sayfaları birer kere açmış olursunuz ve yerleri düzelir.

Kod:
For aaa = 0 To 3 'ilk sayfa sıfır değerini alır. 3 sayfa varsa 2 yazılmalıdır.
 MultiPage1.Value = aaa
 Next
 MultiPage1.Value = 0
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Alternatif olarak;

Multipage sayfalarındaki tüm Listview nesnelerinin herbirini, bir Frame içine yerleştirin. Frame'in kenarlıklarını ve caption'ını yokedin. Böylelikle frame olduğu belli bile olmayacaktır.

Buradaki Frame, bir çeşit hapishanedir ve multipage sayfalarında dolaşırken, Listview nesneleriniz asla yer değiştiremez.
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
953
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
Ya neden ListBox varken ListView kullanırlar anlamıyorum..Birde Multipageri default olarak kullanın ..
Bu listview'ide yeni duyuyorum..
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ferhat Pazarçevirdi;282467' Alıntı:
Alternatif olarak;

Multipage sayfalarındaki tüm Listview nesnelerinin herbirini, bir Frame içine yerleştirin. Frame'in kenarlıklarını ve caption'ını yokedin. Böylelikle frame olduğu belli bile olmayacaktır.

Buradaki Frame, bir çeşit hapishanedir ve multipage sayfalarında dolaşırken, Listview nesneleriniz asla yer değiştiremez.
Merhaba.
Ferhat hocam , enterasan bir durum.Listview ilk açıldığında kendiliğinden hareket ediyor.Bu multipage kullanıldığında her zaman oluşan bir durummmudur acaba?
Frame kulnıncada framenin dışına taşıyor..:)
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ya neden ListBox varken ListView kullanırlar anlamıyorum..Birde Multipageri default olarak kullanın ..
Bu listview'ide yeni duyuyorum..
MultiPageleri default olarak kullanın derken hangi özelliğini ne olarak kullanmaktan bahsediyorsunuz?
 
Katılım
16 Haziran 2007
Mesajlar
163
Excel Vers. ve Dili
Excel 2003 - Türkçe
Formunuzu inceledim, kesin çözüm değil belki ama bir seçenek olarak sunayım yine de:

madem ki liste göstericiler sayfalar ilk seçildiğinde yanlış yerde çıkıyor, ikinci seçmede bunların yerleri düzeliyor, userform_activate olayına aşağıda kodları ekleyip, form faal hale geldiğinde bu sayfaları birer kere açmış olursunuz ve yerleri düzelir.

Kod:
For aaa = 0 To 3 'ilk sayfa sıfır değerini alır. 3 sayfa varsa 2 yazılmalıdır.
 MultiPage1.Value = aaa
 Next
 MultiPage1.Value = 0

hocam teşekkür ederim bu kod işimi gördü

yardımcı olan diğer arkadaşlarada ayrıca teşekkür ederim
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhaba.
Ferhat hocam , enterasan bir durum.Listview ilk açıldığında kendiliğinden hareket ediyor.Bu multipage kullanıldığında her zaman oluşan bir durummmudur acaba?
Frame kulnıncada framenin dışına taşıyor..:)
Evren hocam, merhabalar

Hem kendi çalışmalarımdan hem de diğer forumlarda ve tartışma platformlarında karşılaştığım bir durum bu ... Sadece multipage'le ilgili diyemeyiz. Çünkü, ben userform üzerinde frame'le oluşturduğum hareketli katmanlarda da, listview kullandığımda benzer sorunla karşılaşıyorum.

Hem MSDN, hem Google groups hem de yabancı forumlarda (mrexcel, vbaexpress, dailydoseofExcel vs gibi) durumu araştırırsanız, yeterince ve tatmin edici bir bilgi olmadığını göreceksiniz.

Karşılaşacağınız en yaygın ve işe yarar öneri; size yazdığım gibi, listview'i bir frame içine hapsetmek ...

Gerçi siz frame'in dışına çıktığını söylemektesiniz ama ben böyle bir durumla hiç karşılaşmadım.

Ekte bir örnek gönderiyorum. Bir userform'da lvwler hapsedilmemiş, diğerinde frame'in içine konulmuştur. İnceleyiniz.

NOT : Listview'e refresh komutunu vermek veya Userform'u Repaint yapmak da işe yaramıyor haberiniz olsun.

.


--------------- REVİZYON ------------------------
Mesaj ekindeki dosya yenilendi / fpc-07.11.08
--------------------------------------------------


-
 

Ekli dosyalar

Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ferhat hocam açıklayıcı bilgileriniz için teşekkür ederim.:)
 
Katılım
16 Haziran 2007
Mesajlar
163
Excel Vers. ve Dili
Excel 2003 - Türkçe
Sn Ferhat Pazarçevirdi ve Evren Gizlen hocalarım açıklayıcı bilgileriniz için teşekkür ederim yanlız 1.mesajdaki ekli dosyada ListView1_Dbclick le TextBoxlara aktardım bilgileri ilk 3 sırayı gayet güzel aktarıyor ListViewin 4.satırından sonra TextBox2 de hata veriyor bilmiyorum anlatabildimmi yardımcı olabilirseniz memnun olurum saygılar...
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
TextBox1'e yazdığınız kodlardan kaynaklanıyor.
Listview1'e tıkladığınızda TextBox1'e değer aktarıyor.
Sizin textbox1'in Chhange olayına yazdığınız kodlardan dolayı arama aypıyor ve bulunan değeri listview1'de listeliyor.3 adet buluyor.Siz 4ncüyü tıkladığınız için hata veriyor.
Tetxbox1'e yazdığınız kodları bir butona atarsanız veya textbox1'in exit olayına yazarsanız sorun düzelir sanırım.:cool:
 
Katılım
16 Haziran 2007
Mesajlar
163
Excel Vers. ve Dili
Excel 2003 - Türkçe
hocam çok teşekkür ederim hemen deneyeceğim...
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Alternatif olarak;

Multipage sayfalarındaki tüm Listview nesnelerinin herbirini, bir Frame içine yerleştirin. Frame'in kenarlıklarını ve caption'ını yokedin. Böylelikle frame olduğu belli bile olmayacaktır.

Buradaki Frame, bir çeşit hapishanedir ve multipage sayfalarında dolaşırken, Listview nesneleriniz asla yer değiştiremez.
Selam,
açıklamalarınız için çok teşekkürler.
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Evren hocam, merhabalar

Hem kendi çalışmalarımdan hem de diğer forumlarda ve tartışma platformlarında karşılaştığım bir durum bu ... Sadece multipage'le ilgili diyemeyiz. Çünkü, ben userform üzerinde frame'le oluşturduğum hareketli katmanlarda da, listview kullandığımda benzer sorunla karşılaşıyorum.

Hem MSDN, hem Google groups hem de yabancı forumlarda (mrexcel, vbaexpress, dailydoseofExcel vs gibi) durumu araştırırsanız, yeterince ve tatmin edici bir bilgi olmadığını göreceksiniz.

Karşılaşacağınız en yaygın ve işe yarar öneri; size yazdığım gibi, listview'i bir frame içine hapsetmek ...

Gerçi siz frame'in dışına çıktığını söylemektesiniz ama ben böyle bir durumla hiç karşılaşmadım.

Ekte bir örnek gönderiyorum. Bir userform'da lvwler hapsedilmemiş, diğerinde frame'in içine konulmuştur. İnceleyiniz.

NOT : Listview'e refresh komutunu vermek veya Userform'u Repaint yapmak da işe yaramıyor haberiniz olsun.
Selam,
Açıklamalarınız ve örnek dosyanız için çok teşekkür ederim.
Gayet güzel çözüm olmuş. deneyeceğim.
bir ufak soru sormak isterim;
Listview'e refresh komutu ve Userform Repaint komutu
ne işe yarıyor? nerede kullanılıyor? Yardımınız olursa sevinirim.

İyi çalışmalar.
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Listview'e refresh komutu ve Userform'u Repaint
ne işe yarıyor? nerede kullanılıyor? Yardımınız olursa sevinirim.
Refresh ve Repaint yöntemleri, kontrol görünümlerini yenilemektedir (Görsel olarak)...

Örneğin, Listview'de herhangi bir elemanı kodla Highlight ettiğinizde, bazen bu işaretleme, "görünüm"e yansımaz. Ama yine kodla kontrol ettiğinizde, Highlight edilen elemanın var olduğunu görürsünüz. Yani çalışma olarak bir sıkıntı olmamasına rağmen görüntü olarak istenen sonuç üretilemez. Bu tür durumlarda, refresh komutu ile görüntüyü tazeleyebilirsiniz.

Listview'de aynı sorun; checkbox gösteriminde, Listview görünüm (report, icon vs) değişikliklerinde, image gösteriminde de karşınıza çıkabilir. Kontrole kodla refresh komutunu vererek arzu edilen görünüm sağlanır.

Bunun programınızı kullananlar üzerindeki tezahürü şu şekilde olur : "Abi, listeden seçtiğim halde, ekranda göstermiyor. Ama işlemi düzgün yapıyor. Anlamadım gitti ya... Bi el atıver şuna ..."

UserForm'da kullanılan repaint yönteminin mantığı da aynıdır. Kontrollerin sürüklenip bırakılması (drag-drop), hareket ettirilmesi, resim gösterilmesi veya çizim yapılması (API) gibi olaylar sonucunda, ekran görüntüsünün yenilenmesi gerekli durumlar oluşabilir. Bu durumda da, repaint komutu ile Form görünümünü tazelemeniz (yeniden çizmeniz) gerekebilir.


.
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Refresh ve Repaint yöntemleri, kontrol görünümlerini yenilemektedir (Görsel olarak)...

Örneğin, Listview'de herhangi bir elemanı kodla Highlight ettiğinizde, bazen bu işaretleme, "görünüm"e yansımaz. Ama yine kodla kontrol ettiğinizde, Highlight edilen elemanın var olduğunu görürsünüz. Yani çalışma olarak bir sıkıntı olmamasına rağmen görüntü olarak istenen sonuç üretilemez. Bu tür durumlarda, refresh komutu ile görüntüyü tazeleyebilirsiniz.

Listview'de aynı sorun; checkbox gösteriminde, Listview görünüm (report, icon vs) değişikliklerinde, image gösteriminde de karşınıza çıkabilir. Kontrole kodla refresh komutunu vererek arzu edilen görünüm sağlanır.

Bunun programınızı kullananlar üzerindeki tezahürü şu şekilde olur : "Abi, listeden seçtiğim halde, ekranda göstermiyor. Ama işlemi düzgün yapıyor. Anlamadım gitti ya... Bi el atıver şuna ..."

UserForm'da kullanılan repaint yönteminin mantığı da aynıdır. Kontrollerin sürüklenip bırakılması (drag-drop), hareket ettirilmesi, resim gösterilmesi veya çizim yapılması (API) gibi olaylar sonucunda, ekran görüntüsünün yenilenmesi gerekli durumlar oluşabilir. Bu durumda da, repaint komutu ile Form görünümünü tazelemeniz (yeniden çizmeniz) gerekebilir.


.
Selam,
Sayın Ferhat Pazarçevirdi Hocam,
Refresh ve Repaint yöntemlerini çok güzel izah ettiniz. Userform ve nesneleri ile ilgili bazı sıkıntılar çekiyorum, muhtemelen benim gibi bir çok site üyesi arkadaşlarda benzer sorunları çekiyordur.
Sıkıntıları şöyle izah edeyim;
Örneğin Userform1. yazınca noktadan (.) sonra özellikler çıkıyor. benzer özellikler de Textbox, Combobox, Listview gibi nesnelerde de çıkıyor. Bilmediğim bunlar hakkında uzun uzadıya sitede arama yapıyorum.
Şöyle bir çalışma yapılmış mıdır bilmiyorum; Noktadan sonra çıkan özelliklerin tamamını kısaca anlatan bir tablo olsa ve çalışmalar hazırlanırken çok faydası olur diye düşünüyorum. Sayın Şaban Sertkaya Bey'in bir çalışmasında bir word dokümanında Userform ile ilgili kastettiğime benzer bir çalışma vardı.
Bahsedilen çalışmalar, parti parti belirli bir başlık antında yayınlansa çok iyi olur kanaatindeyim.

İyi çalışmalar.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Örneğin Userform1. yazınca noktadan (.) sonra özellikler çıkıyor. benzer özellikler de Textbox, Combobox, Listview gibi nesnelerde de çıkıyor. Bilmediğim bunlar hakkında uzun uzadıya sitede arama yapıyorum.
Şöyle bir çalışma yapılmış mıdır bilmiyorum; Noktadan sonra çıkan özelliklerin tamamını kısaca anlatan bir tablo olsa ve çalışmalar hazırlanırken çok faydası olur diye düşünüyorum. Sayın Şaban Sertkaya Bey'in bir çalışmasında bir word dokümanında Userform ile ilgili kastettiğime benzer bir çalışma vardı.
Bahsedilen çalışmalar, parti parti belirli bir başlık antında yayınlansa çok iyi olur kanaatindeyim.
Bunlar nesnelere anlam kazandıran, "Özellik/Property", "Yöntem(Komut)/Method" ve "Olay/Event" lardır. Yani ilgili nesnelerin üyeleridir.

Nesnelerde kullanılan bu tür bileşenlerin hepsine ulaşmak ve ne işe yaradığını öğrenmek oldukça kolaydır.

"VBE" içindeki "Object Browser" penceresi tam da bu işe yarar.

Şimdi, Excel'de açık hiçbir kitap kalmayıncaya tüm çalışma kitaplarını kapatın. (Buna gerek yok ama temiz bir başlangıç ve kafa karışıklığını engellemek için ön kabul olarak görün)

Yeni bir "Çalışma Kitabı" ilave edin.

VBE'ye geçin (Alt+F11 veya menüden ilgili komutu vererek)

F2 tuşuna basın veya menüden, "View" -> "Object Browser" komutunu verin. Önünüze bir pencere açılacak.

"Object Browser" penceresinin, üst kısmında ilk açılışta "All Libraries" ibaresini içeren bir combobox göreceksiniz. Hemen altında, arama yapmanızı sağlayan editlenebilir bir combo daha var. Buraya "ComboBox" yazın ve "Enter" tuşuna basın (veya yanındaki butonu kullanın)

Şu anda, aktif olan tüm nesne kütüphanelerinde arama yapmaktasınız. Sonuçlar, hemen alttaki "Search Results" listesinde görüntülenmektedir.

Ancak, karşınıza aradığınız "Combobox" ifadesi ile tam olarak eşleşmeyen bazı bilgiler gelmiş olmalı. Örneğin, "Office" kütüphanesininin, "CommandBarComboBox" sınıfı ve yine "Office" kütüphanesinin, "Msocontroltype" sınıfının, "msocontrolcombobox" üyesi ...

Çıkan sonuçlar, sizin CommandBar'larda (Araç Çubuklarında) gördüğünüz ComboBox'lara ilişkindir. Örneğin, Araç çubuklarındaki "Yazı Tipi Seçme", "Yazı Büyüklüğü Seçme" gibi combolar verilebilir.

Asıl görmek istediğiniz ise, gerçek bir ComboBox nesnesi ise, o kütüphaneyi önce projenize tanıtmanız gerekir (Activex(ocx) ve dll kütüphaneleri bunun için registry edilir)

Şimdi; menüden, "Tools" -> "References" komutunu verin.

Açılan penceredeki listeden, "Microsoft Forms 2.0 Object Library" i işaretleyin ve tamam deyin.

Bu işlemi yaptığınız anda, "Search Result" penceresine otomatikman bir eleman daha ilave edilir. Bu da, MSForms (FM20.dll) kütüphanesi içinde yer alan -ve gerçekten aradığımız- "ComboBox" sınıfı (nesnesi) dır.

"Search Result" penceresinde, bu elemana tıklarsanız (seçerseniz), onun aşağısındaki "Members of ComboBox" listesini göreceksiniz.

Aradığınız herşey orada ...

Yani, sorunuzda belirttiğiniz, "ComboBox" tan sonra koyduğunuz her nokta için çıkan şeyler burada ...

"Members of ComboBox" listesinde, her neyle ilgileniyorsanız, üstüne sağ tıklayıp, çıkan Popup menüden "Help" komutunu vermeniz, sizi o üyeyle alakalı açıklamalara ulaştıracaktır.

FM20.dll kütüphanesini, yükleyerek, Microsoft Forms nesnelerinin tamamı için açıklayıcı bilgilere ulaşabilirsiniz. Bunlar, CommandButton, ListBox, Label, TextBox, CheckBox, OptionButton vs kontrollere ilişkin bilgilerdir.

Gelelim, ListView'le alakalı yapacağınız keşiflere ...

ListView nesnesi, FM20.dll (yani MsForms kütüphanesinin) bir üyesi değildir. Şu anda arama kutucuğuna "Listview" yazarak bir arama yaparsanız "No Items Found/Hiçbir nesneye ulaşılamadı" mesajını alırsınız.

Bunun için, "Microsoft Windows Common Controls X.X (SP X)" kütüphanesini (MSCOMCTLX.OCX) yüklemeniz gerekir.

Menüden, "Tools" -> References komutunu vererek, bu kütüphaneyi işaretleyerek projenize dahil edin

Not : Listede bu bileşeni göremezseniz, "Browse" düğmesine basarak, "Windows/System32" veya "Windows/SysWow64" klasörlerinin altından ilgili ocx'i (MSCOMCTL.ocx) bulun ve "Aç" deyin.

Şimdi, ListView'le alakalı tüm bilgilere ulaşmış olmanız gerekiyor. MsComCtlLib adlı kütühanenin, Listview sınıfı istediğiniz bilgileri içerir. Yani Listview'in tüm üyelerini görebilirsiniz.

Ancak, bu kütüphanenin yardım dosyasına ulaşamayabilirsiniz.

Bu sefer MSDN'yi veya tartışma forumlarını takip ederek, bilgi alabilirsiniz.

Umarım, yardımcı olmuştur.


İyi çalışmalar.
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Bunlar nesnelere anlam kazandıran, "Özellik/Property", "Yöntem(Komut)/Method" ve "Olay/Event" lardır. Yani ilgili nesnelerin üyeleridir.
*************
Ancak, bu kütüphanenin yardım dosyasına ulaşamayabilirsiniz.

Bu sefer MSDN'yi veya tartışma forumlarını takip ederek, bilgi alabilirsiniz.

Umarım, yardımcı olmuştur.

İyi çalışmalar.
Selam,
Sayın Ferhat Pazarçevirdi hocam,
Detaylı açıklamalarınız için çok çok teşekkür ederim. Çok zahmet etmişsiniz gerçekten. dediklerinizin hepsini yaptım. teşekkür ederim. Dediğiniz gibi ListView'in yardım menülerini göremedim.
MSDN'den kastınız Microsoft'un siteleri midir?
İyi çalışmalar.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,111
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Evet Microsoftun siteleridir. Google arama motoruna MSDN yazarsanız direk karşınıza gelir.
 
Üst