Jump to content

Listbox Sender Yardım


muratboy31
 Share

Recommended Posts

Arkadaşlar merhaba,

 

runtime da oluşturduğum listboxlar var, bunlarda bulunan itemnlerden seçili olandan bazı bilgiler almak istiyorum ancak bunu bir fonksiyon içinden kullanmam lazımo yüzden sender alamıyorum, bunu nasıl yapabişlirim !

 

aşağıdaki örnekte, runtime oluşturulan bir listbox itemi ile listBox2 de bulunan bir itemin Tag larını karşılaştırmak istiyorum ;

private void yaz()
        {
            ListBox listBox = new ListBox();
            string ID = (listBox.SelectedItem as ListBoxItem).Tag as string;


            int number = -1;
            foreach (ListBoxItem item in listBox2.Items)
            {                
                if(ID == item.Tag.ToString())
                {
                    number++; 
                }                
            }

            if (number > -1)
                MessageBox.Show("Kişi zaten favorilerinizde !", "Hata", MessageBoxButtons.OK);
            else
            {
                MessageBox.Show("Kişi zaten favorilerinize eklendi!", "Başarılı", MessageBoxButtons.OK);
            }
      }
Link to comment
Share on other sites

yok aslında veri yüklü, form onload da yüklüyor verileri...

 

aslında çözüm buldum ama daha iyi bir çözüm olabilir mi diye düşünüyorum..

 

global olarak bir string tanımladım, listbox selected change olayında veriyi string e atayıp öyle işlem yaptırıyorum...

ancak daha iyi bir çözüm var mı bilmiyorum

Link to comment
Share on other sites

Arkadaşlar listBox_SelectedIndexChanged olaynda eğer listbox ta 1 item var ise, işlem yaptıramıyorum, çözümü var mıdır acaba ?

gerçe ben bir çözüm buldum ama sağlıklı değil gibi, seçim yaptıktan sonra selected -1 yaptırıyorum ama ileride sorun çıkarır diye düşünüyor, daha iyi bir çözüm var mıdır acaba ?

Edited by muratboy31
Link to comment
Share on other sites

aslında sorun şöyle;

 

mesela listboxlar arası geçiş yaptığımda hali hazırda seçili olan itemi bir daha seçemediğim için bilgileri çekemiyorum. o yüzden -1 yapıyorum hiçbirşey seçilmemiş gibi olsun ki bilgileri tekrar çekebileyim... ama bana hiç iyi bir çözüm gibi gelmedi...

anlatabilmişimdir umarım.


Tamam halletim gibi ;

değişikliği tab değiştiğinde yapıyorum...

Stack<Control> controlStack = new Stack<Control>();
            foreach (Control c in this.Controls)
            {
                controlStack.Push(c);
            }
            Control ctl;
            while (controlStack.Count > 0 && (ctl = controlStack.Pop()) != null)
            {
                if (ctl is ListBoxAdv)
                {
                    (ctl as ListBoxAdv).SetSelected(-1, true);
                }
                foreach (Control child in ctl.Controls)
                {
                    controlStack.Push(child);
                }
            }
Link to comment
Share on other sites

bence sen her şeyi fonksiyonla yapmak istiyorsun, o yüzden normal kod ile yapmaktan korkuyorsun. tüm iletilerin genelde böyle. her normal kod spagetti kod değildir, bazı işleri böyle global değişkenlerle halledebilirsin bunda bir şey yok ki, herkes yapıyor bunu. illa her şey fonksiyon içinde olsun dersen yanlış olmaz ama boşuna yorarsın kendini.

 

Ben hemen hemen her projede ve projenin farklı yerlerinde kullandığım fonksiyonları bir cs dosyasında, form içinde kullandıklarımı da ayrı bir cs dosyasında tutuyorum. Öncelikle her projede kullanacağın bir hiyerarşi oluşturmalısın, sonra da bu yapıya göre gitmelisin. Bir kaç proje sonra bu yapın sağlamlaşacak ve işlerini kolaylaştıracaktır. 

 

Şu an çalıştığım proje hiyerarşisi şu şekilde:

 

screenshot_171.png

Link to comment
Share on other sites

Bilgi için teşekkürler Kintaro

 

aslında herşeyi uzaktan yönetilerilir yapmak istiyorum, yane her seferinde onlarca bilgisayarı dolaşmak istemiyorum, mesela bir şube eklediğimde bunu veri tabanından yapıyorum, otomatik olarak tab ve bunun içine listbox ve özellikleri ekliyorum, o yüzden aktif kontroller üzerinde işlemleri yapmak biraz zorlaşıyor. ve her hata payını gözden geçiriyorum ki kullananlar sorun yaşamasın daha sonra, çünkü bulunduğum yerde işi bırakında bir değişikiklik yapmam lazım demem zor sürekli çalışma halinde personeller...

 

buarada bazı iş kolaylaştıracak cs dosyaların varsa kullanmak isterim :)

Link to comment
Share on other sites

Aynı dert bende de var, şirkette 7 client var, projede değişiklik yapınca bir şekilde onları güncellemem gerekiyor. Bunu ben güncelleme sistemi ile çözdüm. Sunucuda bir kontrol dosyam var, programlar açılışta ve/veya güncelleme kontrol buttonuyla bu dosyadaki versiyon ile kendi versiyonlarını karşılaştırıyor, eğer güncelleme varsa kullanıcıdan onay istiyor, kullanıcı onay verirse güncelleme işlemi başlıyor ve gerekli dosyalar güncelleniyor. Yani toplamda 20-30 sn gibi bir süre. Bu iş benim iş yükümü baya bir kolaylaştırıyor.

 

şurada işine yarayacak bir kaç fonksiyon vardır:

http://paste2.org/3zfOMexG
Link to comment
Share on other sites

  • Editor

Visual Studio nun publish özelliği var eğer onu kullanırsanız siz yeni bir sürümü derlediğinizde kullanıcılarda otomatik olarak uyarı çıkar ve tıklayıp güncelleye bilirler.

 

Yani onca koda gerek kalmaz.

Link to comment
Share on other sites

  • Editor

Teşekkürler çok işime yarayacak kodlar,

 

ayrıca güncelleme örneğini verebilir misin münkünse.

 

 

@ pairs

Team yarın veririm tabi sen müsait olursan, benim mesai 18:00 de bitiyor. :)

 

 

Yarın pek müsait olacağım söylenemez :D. Ben 5:30 da çıkıyorum denk gelirsek bakarız.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...