C#nedir?com
 
YAZAR HAKKINDA
Orhan Albay
Orhan Albay
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
3 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: { return adindaki datatreenode datatreenode( musteri node.data object private public sinifin sinifindan string tostring() treenode treeview C# / VC#/.NET Orhan Albay
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : C# / VC#/.NET
Yayınlanma Tarihi : 1.9.2004
Okunma Sayısı : 39068
Yorum Sayısı : 3     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 12.4.2021
Turhal Temizer
Mac OS/X Removing CUDA 12.4.2021
Burak Selim Şenyurt
Tie Fighter Değil, Project Tye! 12.4.2021
Burak Selim Şenyurt
Stackoverflow Sevgi Anketinde Yıllardır Bir Numara Çıkan Programlama Dili Rust Kimdir? 12.4.2021
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
TreeView Kontrolüne Kullanıcı Tanımlı Nesneler Eklemek
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bu makalemizde Treeview kontrolüne kullanıcı tanımlı nesneleri nasıl ekleyeceğimizi öğreneceğiz. Bildiğiniz gibi bu kontrolün Nodes adındaki property’  sine eklediğimiz nesne TreeNode sınıfından oluşturulmuş bir nesne olmalı. Bu sınıfın constructor’ ının parametresi string türünde. Yani bu, Treeview kontrolüne string dışında başka bir tipten nesneyi ekleyemeyeceğimiz anlamına geliyor ama yanılıyor olabiliriz.

Eğer node olarak ekleyeceğimiz nesnenin ToString() metodunu override eder, object tipinde verileri saklaması için TreeNode sınıfından yeni bir sınıf türetir ve object.ToString() dönüş değerini temel sınıfın constructor’ ına gönderirsek başarıya ulaşmışız demektir. Böylece Treeview kontrolünü sanki string tipinde nodelar saklıyormuş gibi aldatmış olacağız. :)  Buraya kadar teorik bilgilere takılıp anlayamayanlar olabilir, uygulamada daha net anlaşılacak herşey.

public class DataTreeNode : TreeNode
{
    private object data;

    public DataTreeNode( object data ) : base ( data.ToString() )
    {
        this.data = data;
    }
   
    public object Data
    {
        get { return data; }
    }
}
Örnek olarak Treeview kontrolümüzün Musteri adındaki bir sınıfın nesnelerini sakladığını düşünürsek;

public class Musteri
{
    private string ad;
    private string soyad;
    private int yas;

    public Musteri(string ad, string soyad, int yas)
    {
        this.ad = ad;
        this.soyad = soyad;
        this.yas = yas;
    }

    public string Ad
    {
        get { return ad; }
        set { ad = value; }
    }

    public string Soyad
    {
        get { return soyad; }
        set { soyad = value; }
    }

    public int Yas
    {
        get { return yas; }
        set { yas = value; }
    }

    public override string ToString() // <------ DataTreeNode sınıfında temel constructora gönderilecek ToString() işte burası.
    {
        return ad + " " + soyad;
    }
}
Şimdi Formumuza bir Treeview sürükle bırak yapıp, Formun OnLoad metodunda birkaç müşteri tanımlayıp nodelara ekleyelim.

private void Form1_Load(object sender, System.EventArgs e)
{
    /* 1. müşteriyi treeye ekliyoruz. */
    Musteri musteri = new Musteri("ali", "veli", 14);
    DataTreeNode node1 = new DataTreeNode( musteri );
    treeView1.Nodes.Add( node1 );

    /* 2. müşteri */
    musteri = new Musteri("ahmet", "kaya", 26);
    DataTreeNode node2 = new DataTreeNode( musteri );
    treeView1.Nodes.Add( node2 );

    /* 3. müşteriyi 2. müşterinin altına ekliyoruz. */
    musteri = new Musteri("bakkal", "hasan", 33);
    DataTreeNode node3 = new DataTreeNode( musteri );
    node2.Nodes.Add( node3 );
}
TreeView OnAfterSelect olayında ise seçili nodedan musteriyi alıp editboxlara DataBind yapalım.

private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
    DataTreeNode node = (DataTreeNode) e.Node; // <--- Node DataTreeNode tipinde
    txtAd.DataBindings.Clear();
    txtSoyad.DataBindings.Clear();
    txtYas.DataBindings.Clear();

    txtAd.DataBindings.Add("Text", node.Data, "Ad");
    txtSoyad.DataBindings.Add("Text", node.Data, "Soyad");
    txtYas.DataBindings.Add("Text", node.Data, "Yas");
}

Gelecek makalede görüşmek dileğiyle. Programın kaynak kodlarını buradan indirebilirsiniz.

Orhan ALBAY
o_albay@yahoo.com
 

Makale:
TreeView Kontrolüne Kullanıcı Tanımlı Nesneler Eklemek C#, Visual C# ve .NET Orhan Albay
  • Yazılan Yorumlar
  • Yorum Yaz
OCA
29
2012
buraki şablonu veritabanına nasıl atarız ve tekrar nasıl okuturuz
ŞUB
25
2010
Ellerine sağlık,gerçekten güzel bir örnek bu tür çalışmalarının devamını bekliyorum.Kolay gelsin. Ali osman
EYL
9
2004
gercekten mukemmel kutluyorum Şahin
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor