3 Temmuz 2012 Salı

C# ile TreeView

Merhaba Webkolog okurları! Bugün C# .Net Framework 4 ve Visual Studio 2010 kullanarak uygulamalarımızda hiyerarşik verileri göstermek için sıkça başvurduğumuz TreeView kontrolünü yakından inceleyeceğiz. Ağaç yapısındaki verileri düzenli ve kullanıcı dostu bir şekilde sunmamızı sağlayan bu kontrol, özellikle dosya sistemi tarayıcıları, organizasyon şemaları ve kategori listeleri gibi uygulamalar için vazgeçilmezdir. Gelin, TreeView'in temel özelliklerine ve kullanımına birlikte göz atalım.

TreeView Kontrolü Nedir?

TreeView kontrolü, düğümler (node) halinde düzenlenmiş hiyerarşik verileri görüntüleyen bir Windows Forms kontrolüdür. Her düğüm, alt düğümler içerebilir, böylece çok seviyeli bir yapı oluşturulabilir. Kullanıcılar, düğümleri genişleterek veya daraltarak hiyerarşinin farklı seviyelerini görüntüleyebilirler.

Temel Kavramlar

  • TreeNode: TreeView'deki her bir öğeyi temsil eden sınıftır. Her TreeNode bir metin, bir değer ve alt düğümler içerebilir.
  • Nodes: Bir TreeNode'un alt düğümlerini içeren koleksiyondur.
  • Root Node: TreeView'in en üst seviyesindeki düğümdür.

TreeView Kontrolünü Kullanma

  1. TreeView Oluşturma:
    • Visual Studio 2010'da, Toolbox'tan bir TreeView kontrolünü formunuza sürükleyerek veya kodda bir TreeView nesnesi oluşturarak başlayabilirsiniz.
  2. Düğümleri Ekleme:
    • Düğümleri TreeView'e eklemek için Nodes.Add() metodunu kullanırız.

// Örnek: TreeView'e düğüm ekleme
TreeNode anaDugum = new TreeNode("Elektronik");
anaDugum.Nodes.Add("Bilgisayar");
anaDugum.Nodes.Add("Akıllı Telefon");
anaDugum.Nodes.Add("Tablet");
treeView1.Nodes.Add(anaDugum); // Oluşturulan ana düğümü TreeView'e ekle
Bu örnekte, "Elektronik" adında bir ana düğüm oluşturduk ve altına "Bilgisayar", "Akıllı Telefon" ve "Tablet" alt düğümlerini ekledik. Ardından, bu ana düğümü TreeView kontrolüne ekledik.

  1. Düğümleri Genişletme ve Daraltma:
    • Düğümleri program aracılığıyla genişletebilir veya daraltabilirsiniz.

// Örnek: Düğümü genişletme ve daraltma
treeView1.Nodes[0].Expand();    // İlk düğümü (Elektronik) genişlet
treeView1.Nodes[0].Collapse();  // İlk düğümü (Elektronik) daralt

TreeView Kontrolünün Özellikleri

  • Nodes: TreeView'deki tüm düğümleri içeren koleksiyon.
  • SelectedNode: Şu anda seçili olan düğümü temsil eder.
  • CheckBoxes: Her düğümün yanında bir onay kutusu görüntülenip görüntülenmeyeceğini belirler.
  • ImageList: Düğümlerle ilişkilendirilecek resimleri içeren bir ImageList kontrolü atayabilirsiniz.
  • ShowLines: Düğümler arasındaki hiyerarşik ilişkileri gösteren çizgilerin görüntülenip görüntülenmeyeceğini belirler.
  • ShowPlusMinus: Düğümlerin genişletilip daraltılabileceğini gösteren artı (+) ve eksi (-) işaretlerinin görüntülenip görüntülenmeyeceğini belirler.

TreeView Kontrolünün Olayları

  • NodeMouseClick: Bir düğüme tıklandığında tetiklenir.
  • AfterSelect: Bir düğüm seçildikten sonra tetiklenir.
  • BeforeExpand: Bir düğüm genişletilmeden önce tetiklenir.
  • AfterExpand: Bir düğüm genişletildikten sonra tetiklenir.
  • BeforeCollapse: Bir düğüm daraltılmadan önce tetiklenir.
  • AfterCollapse: Bir düğüm daraltıldıktan sonra tetiklenir.

Örnek Kullanım: Dosya Sistemi Tarayıcı

TreeView kontrolünü kullanarak basit bir dosya sistemi tarayıcı oluşturabiliriz. Bu örnekte, bir klasör seçildiğinde, alt klasörler ve dosyalar TreeView'de görüntülenir.

private void btnKlasorSec_Click(object sender, EventArgs e)
{
    FolderBrowserDialog klasorSec = new FolderBrowserDialog();
    if (klasorSec.ShowDialog() == DialogResult.OK)
    {
        treeView1.Nodes.Clear(); // Önceki içeriği temizle
        string secilenKlasor = klasorSec.SelectedPath;
        TreeNode kokDugum = new TreeNode(secilenKlasor);
        treeView1.Nodes.Add(kokDugum);
        Doldur(kokDugum, secilenKlasor); // Düğümü ve yolu gönderiyoruz
    }
}
private void Doldur(TreeNode dugum, string yol)
{
    try
    {
        string[] klasorler = Directory.GetDirectories(yol);
        string[] dosyalar = Directory.GetFiles(yol);
foreach (string klasor in klasorler)
        {
            TreeNode yeniDugum = new TreeNode(Path.GetFileName(klasor));
            dugum.Nodes.Add(yeniDugum);
            Doldur(yeniDugum, klasor); // Özyinelemeli olarak alt klasörleri ekle
        }
foreach (string dosya in dosyalar)
        {
            dugum.Nodes.Add(Path.GetFileName(dosya)); // Dosyaları düğüme ekle
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Hata: " + ex.Message);
    }
}

Bu örnekte, Doldur fonksiyonu, belirtilen yoldaki klasörleri ve dosyaları alır ve TreeView'e düğüm olarak ekler. Fonksiyon, alt klasörleri işlemek için özyinelemeli olarak çağrılır.

Sevgili Webkolog okurları, C# .Net Framework 4 ve Visual Studio 2010 kullanarak TreeView kontrolünün temel kullanımını ve bazı önemli özelliklerini bu şekilde incelemiş olduk. Bu kontrol, uygulamalarınızda hiyerarşik verileri etkili bir şekilde sunmanıza ve kullanıcıların veriler arasında kolayca gezinmesine olanak tanır.

Webkolog'u takipte kalın!

Hepinize bol ağaçlı ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder