Şimdi Ara

[ÇÖZÜLDÜ] - Listbox tekrarsız seçim

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir (1 Mobil) - 2 Masaüstü1 Mobil
5 sn
11
Cevap
0
Favori
862
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar c# listbox içerisinde tekrarsız rastgele seçim yaptırıp diğer listboxa atmak istiyorum. ben rastgele seçimi yaptım fakat tekrarsız kısmını ayarlayamadım kodlamada yeniyim. bilen varsa yardımcı olursa çok sevinirim.

    listboxt1 de 10 adet eleman var rastgele tekrarsız seçim yaptırıp listbox2 ye aktarmak istiyorum.

    rastgele kodlarım bunlar;

    int rsayi;

    Random r = new Random();

    for (int i = 0; i < 5; i++)
    {
    rsayi = r.Next(listBox1.Items.Count);

    listBox2.Items.Add(listBox1.Items[rsayi].ToString());
    listBox2.SelectedIndex = listBox2.Items.Count - 1;
    listBox2.SetSelected(listBox2.Items.Count - 1, false);
    }



    < Bu mesaj bu kişi tarafından değiştirildi immajeste -- 17 Nisan 2017; 0:23:49 >



  • koca forumda bunu bilen kimse yok mu ?
  • C# görsel programlamada pek bilgim yok. Listbox itemları object olarak tutuluyorsa object tipinde veri tutan bir listeye atarsınız, seçilen elemanı bir daha seçmezsiniz. Itemların yazılarına erişip onları da diziye atabilirsiniz.
  • anlıyorum tesekkurler. ama benım ıstedıgım cok basıt bısey olay tamamen su

    listbox 1

    1
    2
    3
    4

    elemanlar bunlar

    sec butonu var tıkladıgımda şu olsun ıstıyorum


    listbox 2

    3
    2
    4

    yanı bu rastgele yı yaptım


    istemedıgım sey ıse bu

    listbox 2

    3
    3
    2
    4

    yanı aynısını bıda secmesın bunun ıcın bı fıkrınız var mı ? kodları zaten yukarda verdım
  • Ben de bunun cevabını vermiştim zaten :)
    Örnek kod yazayım.

     
    List<string> list = new List<string>();

    for (int i = 0; i < 5; i++)
    {
    rsayi = r.Next(listBox1.Items.Count);
    String eklenecek = listBox1.Items[rsayi].ToString();
    if (list.Contains(eklenecek) { // eleman listede varsa tekrar denemesi için döngüyü uzat
    i--;
    }
    else {
    listBox2.Items.Add(eklenecek);
    listBox2.SelectedIndex = listBox2.Items.Count - 1;
    listBox2.SetSelected(listBox2.Items.Count - 1, false);
    list.Add(eklenecek); // listeye elemanı ekle ki bir sonraki döngüde kontrol edelim aynısını yerleştirmeyelim
    }
    }

    Kod çalışıyor mu bilmiyorum VS kurulu değil ama mantığı anlamışsınızdır sanırım. Daha basit bir yolu varsa da benim bilgim yok o konuda.
  • üstat teşekkür ederim daha yeni girme fırsatı buldum :) deneyeceğim çalışmasa da uğraştığın için eline sağlık. eğer olursa çözüldü olarak değiştireceğim konu başlığını.
  • immajeste kullanıcısına yanıt
    listboxdan seçileni sildirerek yapabilirsin.

    listbox1 in aynı kalmasını istiyorsan, yeni bir listboxa içindekileri atıp oradan seçileni silebilirsin.
  • eyvallah kardeşim çözdüm sağolasın
  • immajeste kullanıcısına yanıt
    if(!Ispostback)
    {
    //gerekli kodlar
    }
    bu yollada çözülebilir sanırım. Olurda sıkıntı yaşayan başka bir arkadaş olursa diye yazayım dedim
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.