9 Temmuz 2016 Cumartesi

Winforms TreeView

TreeView Sınıfı
Nodes Alanı
TreeNodeCollection tipindendir. Şöyle yaparız.
TreeNode node = treeView1.Nodes[0];
OnNodeMouseClick Event'i Tıklanan TreeNode nesneni verir. Şöyle yaparız.
void OnNodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
  ((TreeView)sender).SelectedNode = e.Node;
}
Şöyle yaparız.
void OnNodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
  string tag = (string)e.Node.Tag;
  ...
}
SelectedNode AlanıŞöyle yaparız.
TreeNode node = treeView1.SelectedNode;
TreeNode Sınıfı
Constructor
Şöyle yaparız.
string label = ...;var node = new TreeNode(label);
Expand metodu
Şöyle yaparız.
TreeNode node = treeView1.Nodes[0];
node.Expand();
EnsureVisible metodu
Şöyle yaparız.
TreeNode node = ...;
node.EnsureVisible();
FullPath Alanı
Şöyle yaparız.
string path = treeView1.SelectedNode.FullPath;
Nodes Alanı
Şöyle yaparız.
TreeNode node = ...;
node.Nodes
Tag Alanı
Bir nesne atamamızı sağlar.
string label = ...;
TreeNode node = new TreeNode(label);
node.Tag = new Foo ();
Bu nesneye daha sonra şöyle erişiriz. Tag alanı boş ise null döner.
Foo foo = someNode.Tag as Foo;
TreeNodeCollection Sınıfı
Add metodu - key + label
Şöyle yaparız.
string key = ...;
string label = ...;
TreeNode lastNode = treeView.Nodes.Add(key, label);
Add metodu - TreeNode
Şöyle yaparız.
string label = ...;
var node = new TreeNode(label);
string label2 = ...;
node.Nodes.Add(new TreeNode(label2));

Cast metodu
IEnumerable döndürür ve Linq kullanabilmemizi sağlar. Ağacın veya düğümün alt düğümlerine Descendants ile erişebiliriz.
using System.Linq;
using System.Windows.Forms;
using System.Collections.Generic;

public static class Extensions
{
    public static List<TreeNode> Descendants(this TreeView tree)
    {
        var nodes = tree.Nodes.Cast<TreeNode>();
        return nodes.SelectMany(x => x.Descendants()).Concat(nodes).ToList();
    }

    public static List<TreeNode> Descendants(this TreeNode node)
    {
        var nodes = node.Nodes.Cast<TreeNode>().ToList();
        return nodes.SelectMany(x => Descendants(x)).Concat(nodes).ToList();
    }
}
Ağaç için şöyle yaparız.
this.treeView1.Descendants().Where(x => x.Checked).ToList()
              .ForEach(x => { x.Checked = false; });
Düğüm için şöyle yaparız.
this.treeView1.Nodes[0].Descendants().Where(x => x.Checked).ToList()
              .ForEach(x => { x.Checked = false; });
Clear metodu
Şöyle yaparız.
treeView1.Nodes.Clear();
Find metodu
Şöyle yaparız.
string key = ...;
TreeNode[] nodes = treeView.Nodes.Find(key, true);



Hiç yorum yok:

Yorum Gönder