folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Panele Kontrol Ekleme-Silme



C# Panele Kontrol Ekleme-Silme

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    Label txt = new Label()
                {
                Left = Convert.ToInt32(xBox.Text),
                Top = Convert.ToInt32(yBox.Text),
                Name = string.Concat("lbl", adBox.Text),
                Visible = true,
                Text = adBox.Text
                };
                panel.Controls.Add(txt);

     

    Daha önce euler ödevimle ilgili konu açmıştım. Javada yeni olmam ve javanın c# kadar sarmaması yüzünden ödevi c#la yapmaya karar verdim. Aslında hazır bi projeyi editleyecektim ama çok uğraştırcak diye vazgeçtim başladım kendim yapmaya, tam dedim herhangi bir çizim yaptırmadan halledeyim gitsin diye sonra bi anda nöronlarımda hareketlenmeler falan sonuç;

    panel üzerine yukarıdaki kod ile label ekliyorum hiiç yormuyorum kendimi çizimlerle falan. Köşeleri şimdilik sadece comboboxlarda tutuyorum,combobox işlemlerinde sorun yok,birde matrixe aktarmam gerekicek sanırım bağları oluştururken o kadar. Sorunum şu;

    panel kontrollerini Remove, RemoveAt, RemoveByKey metodlarıyla sildirebiliyoruz ama ben bir türlü beceremedim.

    RemoveAt ile index numarasına göre denedim,oluyor ancak itemin comboboxtaki index numarası ile panel üzerindeki index numarası tutmayabiliyor; comboboxtan seçili itemi silerken panel üzerinden yanlış labeli siliyor.

    RemoveByKey("lbl"+combobox.selectedvalue) gibi combobox'ın farklı değerlerini denedim yine olmadı. Remove'u kullanamadım...

    gece gece kafam çalışmıyor, panel üzerinden kontrolleri isme göre nasıl sildiricem?


    :)
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    Araştırdım RemoveByKey metodu isme göre sildiriyomuş ama ben bir türlü yapamadım bunu :/

    panel.Controls.RemoveByKey("lbl" + adBox.Text);

     

    diyince textboxa silinecek vertex adı yazıldığında siliyor panelden ama combobox daha pratik. comboBox3.SelectedValue falan deniyorum deniyorum olmuyor birtürlü.


    :)
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    sileceğin kontrolün adını biliyor olman gerekiyor. eğer kontrolleri sen dinamik eklediysen peryodik isimler ver ve sonradan kontrol edebilir halde ol.

    o zaman şu kod işini görür:

     

    foreach (Control c in Panel1.Controls.Find("cnt" + s, false))
    {
        if (c.GetType().Name.ToString() == "ComboBox")
        {
            ComboBox cmb = (ComboBox)c;
            if (cmb.Tag.ToString() == "cmbMarka")
            {
                Panel1.Controls.Remove(c);
            }
        }
    
        if (c.GetType().Name.ToString() == "TextBox")
        {
            TextBox txt= (TextBox)c;
            if (txt.Tag.ToString() == "txtMarka")
            {
                Panel1.Controls.Remove(c);
            }
        }
    
    }

     

     

    ben herhangi bir problem yaşamıyorum. 2000 farklı ürünün 20 kalem farklı bilgisini dinamik kontrol ekleyerek aldırıyorum programda:)

    bişey olursa yaz burdan:)


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SARI
    SARI's avatar
    Banlanmış Üye
    Kayıt Tarihi: 29/Eylül/2009
    Erkek

    uplayalim :D


    Ban Sebebi : Molrada Haarket Eiğtti için Bdnlaanı... Türkçe öğretmenliği okuyan arkadaşım sana ders verebilir admin arkadaş :)
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    EDİT:

    string cntrl = "lbl" + comboBox3.SelectedItem.ToString();

    şeklinde bir değişken tanımladım, panel.Controls.RemoveByKey(cntrl);

    yapınca sorun halloldu :) yardımların için çok sağol manglerman :)


    :)
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    wasd bunu yazdı:
    -----------------------------

    EDİT:

    string cntrl = "lbl" + comboBox3.SelectedItem.ToString();

    şeklinde bir değişken tanımladım, panel.Controls.RemoveByKey(cntrl);

    yapınca sorun halloldu :) yardımların için çok sağol manglerman :)


    -----------------------------

     

    reca ederiz:)


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    Yeni konu açmayayım burdan devam edeyim dedim :)

     

    Projenin son durumu şu;

    -Arayüz tamam,zaten 4 buton,3 textbox,3 combobox,3 label,bi tane de panel var :D panel büyük ya da küçük oldu muhabbetinin önüne geçmek için anchor kısmını değiştirdim görünümde sıkıntı kalmadı.

    -Vertex ekleme silme butonları tamam, sadece bağ ekleme silmeyide yazdıktan sonra silinen vertexin bağlarını silmek için 2 satır daha eklemem gerekicek o kadar.

    -bağ ekleme silme için matris mi kullansam veritabanımı haala onu düşünüyorum. Veritabanı eklersem ben buna bikaç bişey daha yaparım ama gerek yok gibime geliyor.

     

    Şimdiii sorunum şu;

    bağ eklemenin görselliğini sağlamak için VisualBasic powerpacklerinden lineShape kullanayım dedim ama bu meret c#'a ait olmadığı için farklı bi çalışma mantığı var, ve panel.Controls.add() şeklinde panele ekleyemiyorum. Ben bunu nasıl dinamik kullanabilirim? Ya da nasıl dinamik olarak çizgiler ekleyebilirim? Tabi her bir çizginin bir adı olması lazım sonradan sildirebilmek için?

     

    EDİT: SORUNU ÇÖZDÜM; lineshape için bi container nesnesi oluşturmamız gerekiyo ve containerdan kalıtım almasını sağlamamız; bu şekilde line form üzerine çiziliyo. Daha sonra container nesnesinede oluşturduğum panelden kalıtım verdim panel üzerine çizimi gerçekleştirdim :) şimdi geriye bikaç ufak bakkal hesabı kaldı o kadar...

     

    EDİT: Şimdi de şöyle birşey sorun oldu; ben bu çizgilerle 2 köşeyi bağlayacağım, eğer o iki köşeden biri silinirse bağ çizgiside silinmeli...o çizgilere ne isim vermeliyimki rahatlıkla sildirebileyim? ben "ln"+comboBox1.SelectedItem.ToString()+comboBox2.SelectedItem.ToString() şeklinde bir isim versem linelara, sildirmek için adının içinde comboBox3.SelectedItem.ToString() geçen "ln"+comboBox1.SelectedItem.ToString()+comboBox2.SelectedItem.ToString() isimli line'ı sildirebilirmiyim?


    :)
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    wasd bunu yazdı:
    -----------------------------

    Yeni konu açmayayım burdan devam edeyim dedim :)

     

    Projenin son durumu şu;

    -Arayüz tamam,zaten 4 buton,3 textbox,3 combobox,3 label,bi tane de panel var :D panel büyük ya da küçük oldu muhabbetinin önüne geçmek için anchor kısmını değiştirdim görünümde sıkıntı kalmadı.

    -Vertex ekleme silme butonları tamam, sadece bağ ekleme silmeyide yazdıktan sonra silinen vertexin bağlarını silmek için 2 satır daha eklemem gerekicek o kadar.

    -bağ ekleme silme için matris mi kullansam veritabanımı haala onu düşünüyorum. Veritabanı eklersem ben buna bikaç bişey daha yaparım ama gerek yok gibime geliyor.

     

    Şimdiii sorunum şu;

    bağ eklemenin görselliğini sağlamak için VisualBasic powerpacklerinden lineShape kullanayım dedim ama bu meret c#'a ait olmadığı için farklı bi çalışma mantığı var, ve panel.Controls.add() şeklinde panele ekleyemiyorum. Ben bunu nasıl dinamik kullanabilirim? Ya da nasıl dinamik olarak çizgiler ekleyebilirim? Tabi her bir çizginin bir adı olması lazım sonradan sildirebilmek için?

     

    EDİT: SORUNU ÇÖZDÜM; lineshape için bi container nesnesi oluşturmamız gerekiyo ve containerdan kalıtım almasını sağlamamız; bu şekilde line form üzerine çiziliyo. Daha sonra container nesnesinede oluşturduğum panelden kalıtım verdim panel üzerine çizimi gerçekleştirdim :) şimdi geriye bikaç ufak bakkal hesabı kaldı o kadar...

     

    EDİT: Şimdi de şöyle birşey sorun oldu; ben bu çizgilerle 2 köşeyi bağlayacağım, eğer o iki köşeden biri silinirse bağ çizgiside silinmeli...o çizgilere ne isim vermeliyimki rahatlıkla sildirebileyim? ben "ln"+comboBox1.SelectedItem.ToString()+comboBox2.SelectedItem.ToString() şeklinde bir isim versem linelara, sildirmek için adının içinde comboBox3.SelectedItem.ToString() geçen "ln"+comboBox1.SelectedItem.ToString()+comboBox2.SelectedItem.ToString() isimli line'ı sildirebilirmiyim?


    -----------------------------

     

    kendin yazıp kendin oynamışın maşallah :) ama en son problemine baktığım kadarıyla:

     

    hiç bir problem olmaz. idsini bildiğin ve containsle içinde unic bir id olan ln leri silebilirsin.

     

    bunu denemek daha kolaydır aslında 3-4 dakika da deneyebilirdin.

     

    olmazsa yine haber et bende merak ettim şimdi :)


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    manglerman bunu yazdı:
    -----------------------------

     

    kendin yazıp kendin oynamışın maşallah :) ama en son problemine baktığım kadarıyla:

     

    hiç bir problem olmaz. idsini bildiğin ve containsle içinde unic bir id olan ln leri silebilirsin.

     

    bunu denemek daha kolaydır aslında 3-4 dakika da deneyebilirdin.

     

    olmazsa yine haber et bende merak ettim şimdi :)


    -----------------------------

    yazdım çözdüm yazdım çözdüm ama kafam durdu sonra :D içerme kontrolünü kullanmam gerektiğini hatırladım(Mesela javada string karşılaştırma == şeklinde yapılmıyor sadece Contains ile oluyor) ama takıldım kaldım,zaten uyuyakalmışım sonra.. neyse bi dışarı çıkayım gelince hallederim,parasızlıktan açlıktan nefesim kokuyor :D bi para çekip kahvaltı edeyim editlerim bu mesajı :)


    :)
Toplam Hit: 4977 Toplam Mesaj: 9