C# forma eklenen dinamik butonlar kodla nasıl silinir?

srkn_srkn

Zeptopat
Katılım
26 Kasım 2021
Mesajlar
3
Daha fazla  
Cinsiyet
Erkek
Merhabalar Windows form uygulamasında bir geçmiş paneli yapmak istiyorum tıkladığım buton panele eklensin panel de 10 kayıt olunca ilk eklenenler silinsin. Butonları ekledim ancak kayıt sayısına ulaşınca tamamen nasıl sileceğimi bulamadım. Yardımcı olursanız sevinirim. Şimdiden teşekkürler.
 
Merhaba srkn_srkn, öncelikle kodunu bilmediğim için sözde kod ile açıklama yapmaya çalışacağım. Eğer doğru anladıysam öncelikle bir sayaç oluştur ve daha sonra tıklama işlemi her yaptığında o sayaç artsın ve her artrıma işleminden sonra if-else ile kontrol ettir 10 oldumu diye. Daha sonra 10 olduysa oluşan tüm butonları kaldır.

foreach (Control item in panel1.Controls)
{
if (item is Button)
{
panel1.Controls.Remove(item);
}
}
 
Merhaba srkn_srkn, öncelikle kodunu bilmediğim için sözde kod ile açıklama yapmaya çalışacağım. Eğer doğru anladıysam öncelikle bir sayaç oluştur ve daha sonra tıklama işlemi her yaptığında o sayaç artsın ve her artrıma işleminden sonra if-else ile kontrol ettir 10 oldu mu diye. Daha sonra 10 olduysa oluşan tüm butonları kaldır.

foreach (Control item in panel1.Controls)
{
if (item is Button)
{
panel1.Controls.Remove(item);
}
}

Teşekkür ederim ancak bu kodu yazdığımda butonlar görünüyor ama tıklanabilir olmuyor yani sadece kodları siliniyormuş gibi oluyor.
 
Çalışırken yaptığımız için sorun oluyor sanırım derleme sırasında yok etmek için internette şu şekilde bir yazı buldum.
Birde ilk attığım kodda 'this' anahtar sözcüğünü başa ekleyerek denermisin. ör: this.panel1.Controls.Remove(item)

Birde şu sekilde kullanımı gördüm.
[CODE title="remove"] textBox1.ResetText();
comboBox1.ResetText();
comboBox2.ResetText();
for (int i = count; i > -1; i--)
{
this.items_panel.Controls.Remove(combo1);
this.items_panel.Controls.Remove(combo2);
this.items_panel.Controls.Remove(text1);
}
this.items_panel.RowCount = 1;
count = -1;[/CODE]
 
Çalışırken yaptığımız için sorun oluyor sanırım derleme sırasında yok etmek için internette şu şekilde bir yazı buldum.
Bir de ilk attığım kodda 'this' anahtar sözcüğünü başa ekleyerek dener misin? Ör: This. Panel1.controls. Remove(item)

Bir de şu sekilde kullanımı gördüm.
[CODE title="remove"] textBox1.ResetText();
comboBox1.ResetText();
comboBox2.ResetText();
for (int i = count; i > -1; i--)
{
this.items_panel.Controls.Remove(combo1);
this.items_panel.Controls.Remove(combo2);
this.items_panel.Controls.Remove(text1);
}
this.items_panel.RowCount = 1;
count = -1;[/CODE]


Çözdüm teşekkür ederim.
 

Geri
Yukarı