• 18-02-2010, 22:15:47
    #1
    arkadaşlar ben run time da nesne oluşturuyorum.şöyle ki timer çalıştığında otomatik olarak pictureBox oluşturuyor yanyana ancak ben döngü durduktan sonra pictureBoxları kaldırmasını istiyorum.Dispose ve Remove metodları ile yaptım olmadı.ne yapmam lazım.Yardımlarınızı bekliyorum.

    kodlar şu şekilde:
    PictureBox img = new PictureBox();
                if (sayac < 7)
                {
                    lbl.Visible = false;
                    img.Top = 33;
                    img.Left = 15 + sol;
                    img.Width = 33;
                    img.Height = 17;
                    img.Image = ımageList1.Images[0];
                    img.Name = "image"+sayac.ToString();
                    images.Add(img);
                    this.Controls.Add(img);
                    sol = sol + 33;
                    sayac++;
                }
    döngünden çıkınca oluşturmış olduğu img leri kaldırmasını istiyorum.
    yarına yetişmesi gereken bir projede kullanmam gerekiyor.yardımlarınızı bekliyorum.
  • 18-02-2010, 23:10:03
    #2
    captainboss adlı üyeden alıntı: mesajı görüntüle
    arkadaşlar ben run time da nesne oluşturuyorum.şöyle ki timer çalıştığında otomatik olarak pictureBox oluşturuyor yanyana ancak ben döngü durduktan sonra pictureBoxları kaldırmasını istiyorum.Dispose ve Remove metodları ile yaptım olmadı.ne yapmam lazım.Yardımlarınızı bekliyorum.

    kodlar şu şekilde:
    PictureBox img = new PictureBox();
                if (sayac < 7)
                {
                    lbl.Visible = false;
                    img.Top = 33;
                    img.Left = 15 + sol;
                    img.Width = 33;
                    img.Height = 17;
                    img.Image = ımageList1.Images[0];
                    img.Name = "image"+sayac.ToString();
                    images.Add(img);
                    this.Controls.Add(img);
                    sol = sol + 33;
                    sayac++;
                }
    döngünden çıkınca oluşturmış olduğu img leri kaldırmasını istiyorum.
    yarına yetişmesi gereken bir projede kullanmam gerekiyor.yardımlarınızı bekliyorum.
    döngüyü komple yaz burda döngü falan yok
  • 18-02-2010, 23:24:12
    #3
    timer içinde dedim ya işte if koşulu sağlandıkça içeri girecek picBox oluşturacak if koşulundan çıkınca else gidip oluşturduğu pictureBoxları silecek.ne yaptıysam olmadı.dispose falan yemedi.
  • 18-02-2010, 23:27:18
    #4
    captainboss adlı üyeden alıntı: mesajı görüntüle
    timer içinde dedim ya işte if koşulu sağlandıkça içeri girecek picBox oluşturacak if koşulundan çıkınca else gidip oluşturduğu pictureBoxları silecek.ne yaptıysam olmadı.dispose falan yemedi.
    Ha pardon tamam
    Bak şu ksıımda :
    this.Controls.Add(img);
    demişsin ya
    else den sonra
    hangilerini kaldırmak istiyorsan :
    this.controls.remove() veya this.controls.removeAt()
    methodlarını kullanacaksın
  • 18-02-2010, 23:38:53
    #5
    Remove metodunu denedim olmadı.RemoveAt nasıl kullanılıyor bilmiyorum. integer parametre istiyor.index numarası olarak galiba ama neyin index numarası anlamadım.
  • 18-02-2010, 23:48:20
    #6
    aşağıdaki kodu yazdığımda picBoxlardan atlayarak siliyor.7 tane picBox oluşuyor ya onlardan 4 tanesini siliyor 3 tanesi kalıyor.sebebini anlamadım.
     for (int t = 0; t <= this.Controls.Count - 1; t++)
                    {
                        if (this.Controls[t].GetType().Name == "PictureBox")
                        {
                            this.Controls.Remove((PictureBox)this.Controls[t]);
                        }
                    }
  • 19-02-2010, 01:04:31
    #7
    arkadaşlar sorunu çözdüm NoVolume arkadaşa çok teşekkür ederim elinden geldiğince yardım etmeye çalıştı.merak edenler için kodu aşağıya yazıyorum.belki birilerine faydası olur.
                   Control[] imgs=new Control[7];
                   int j = 0;
                    for (int t = 0; t <= this.Controls.Count - 1; t++)
                    {
                        if (this.Controls[t].GetType().Name == "PictureBox")
                        {
                            imgs[j] = ((PictureBox)this.Controls[t]);
                            j++;
                        }
    
                    }
                    for (int i = 6; i >= 0; i--)
                    {
                        this.Controls.Remove(imgs[i]);
                        imgs[i].Dispose();
                    }