TreeView.TreeViewNodeSorter Özellik

Tanım

Düğümlerin özel bir sıralamasını TreeView gerçekleştirmek için uygulamasını IComparer alır veya ayarlar.

C#
[System.ComponentModel.Browsable(false)]
public System.Collections.IComparer TreeViewNodeSorter { get; set; }
C#
[System.ComponentModel.Browsable(false)]
public System.Collections.IComparer? TreeViewNodeSorter { get; set; }

Özellik Değeri

IComparer özel sıralamayı gerçekleştirmek için.

Öznitelikler

Örnekler

Aşağıdaki kod örneği, en küçükten en büyüğe düğümleri sıralamak için özelliğinin nasıl kullanılacağını TreeViewNodeSorter gösterir. Bu örneği çalıştırmak için aşağıdaki kodu bir Windows Formuna yapıştırın ve formun oluşturucusundan veya Load olay işleyicisinden çağrısı InitializeTreeView1 yapın.

C#
// Declare the TreeView.
private TreeView treeView1;
private TextBox textBox1;
private Button button1;

private void InitializeTreeView1()
{
    // Create the TreeView
    treeView1 = new TreeView();
    treeView1.Size = new Size(200, 200);

    // Create the button and set some basic properties. 
    button1 = new Button();
    button1.Location = new Point(205, 138);
    button1.Text = "Set Sorter";

    // Handle the click event for the button.
    button1.Click += new EventHandler(button1_Click);

    // Create the root nodes.
    TreeNode docNode = new TreeNode("Documents");
    TreeNode spreadSheetNode = new TreeNode("Spreadsheets");

    // Add some additional nodes.
    spreadSheetNode.Nodes.Add("payroll.xls");
    spreadSheetNode.Nodes.Add("checking.xls");
    spreadSheetNode.Nodes.Add("tracking.xls");
    docNode.Nodes.Add("phoneList.doc");
    docNode.Nodes.Add("resume.doc");

    // Add the root nodes to the TreeView.
    treeView1.Nodes.Add(spreadSheetNode);
    treeView1.Nodes.Add(docNode);

    // Add the TreeView to the form.
    Controls.Add(treeView1);
    Controls.Add(button1);
}

// Set the TreeViewNodeSorter property to a new instance
// of the custom sorter.
private void button1_Click(object sender, EventArgs e)
{
    treeView1.TreeViewNodeSorter = new NodeSorter();
}

// Create a node sorter that implements the IComparer interface.
public class NodeSorter : IComparer
{
    // Compare the length of the strings, or the strings
    // themselves, if they are the same length.
    public int Compare(object x, object y)
    {
        TreeNode tx = x as TreeNode;
        TreeNode ty = y as TreeNode;

        // Compare the length of the strings, returning the difference.
        if (tx.Text.Length != ty.Text.Length)
            return tx.Text.Length - ty.Text.Length;

        // If they are the same length, call Compare.
        return string.Compare(tx.Text, ty.Text);
    }
}

Açıklamalar

Özel sıralama, ayarlandığında uygulanır TreeViewNodeSorter .

Bir TreeNode etiket değiştirilirse, özelliği tarafından TreeViewNodeSorter belirtilen özel sıralayıcı ile öğeleri yeniden sıralamak için yöntemini çağırabilirsinizSort.

Not

Varsayılan sıralayıcı, uygulama tarafından belirtilene CurrentCulture göre yöntemini kullanırCompare. Bu, eşit değere TreeNode sahip nesnelerin denetime TreeView eklendikleri sırada tutuldukları anlamına gelir. Özel sıralama uygulandığında bu davranış farklı olabilir.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Ayrıca bkz.