2009-08-25 2 views

Antwort

0

Von MSDN Documentation werden Auswahl sollte:

private void SelectNode(TreeNode node) 
{ 
    if(node.IsSelected) 
    { 
     // Determine which TreeNode to select. 
     switch(myComboBox.Text) 
     { 
      case "Previous": 
       node.TreeView.SelectedNode = node.PrevNode; 
       break; 
      case "PreviousVisible": 
       node.TreeView.SelectedNode = node.PrevVisibleNode; 
       break; 
      case "Next": 
       node.TreeView.SelectedNode = node.NextNode; 
       break; 
      case "NextVisible": 
       node.TreeView.SelectedNode = node.NextVisibleNode; 
       break; 
      case "First": 
       node.TreeView.SelectedNode = node.FirstNode; 
       break; 
      case "Last": 
       node.TreeView.SelectedNode = node.LastNode; 
       break; 
     } 
    } 
    node.TreeView.Focus(); 
} 

EDIT
Sie würden natürlich die Fälle für "Previous" und "Next" oder "PreviousVisible" und "NextVisible" in Ihrer Schaltfläche Click-Handler verwenden. Dieser Code setzt voraus, dass Sie die "Aktion" aus einem Kombinationsfeld auswählen und eine Schaltfläche drücken.

EDIT 2
Gerade falls Sie versuchen, die Knoten nach oben zu bewegen und nach unten (nicht die Auswahl), können Sie so etwas wie die folgenden verwenden:

TreeNode sourceNode = treeView.SelectedNode; 

if (sourceNode.Parent == null) 
{ 
    return; 
} 

treeView.Nodes.Remove(sourceNode); 
treeView.Nodes.Insert(sourceNode.Index + 1, sourceNode); 

Dies würde den aktuellen Knoten verschieben eine nach unten. Bitte beachten Sie, dass Sie mehr Code schreiben müssen, um einige Spezialfälle zu behandeln (z. B. was passiert mit dem ersten Knoten? Funktioniert es auf allen Ebenen des Baumes?), Aber im Grunde würde ich es versuchen.

+0

er möchte nicht auswählen, er möchte die Knoten nach oben und unten verschieben !. –

+0

Nein, er/sie sagt: "Klicken Sie auf UP_buutten, über Node ausgewählt". Wenn er/sie die Knoten verschieben möchte, sollte die Frage neu formuliert werden. –

0

Es gibt einige schöne in den Eigenschaften des Knotens aufgebaut, die Sie verwenden können, so für verwenden Sie:

TreeView.SelectedNode = TreeView.SelectedNode.PrevNode; 

und unten:

TreeView.SelectedNode = TreeView.SelectedNode.NextNode; 
+0

Danke für die Antwort Ich löse mein Problem mit privaten void button1_Click (Objekt Absender, EventArgs e) { TreeNode Knoten = new TreeNode(); node = treeView1.SelectedNode; treeView1.SelectedNode = Knoten.NextVisibleNode; Knoten.TreeView.Focus(); } – Mary

0

mein Problem gelöst.
Danke für Antworten

private void button1_Click(object sender, EventArgs e) 
{ 
    TreeNode node = new TreeNode(); 
    node = treeView1.SelectedNode; 
    treeView1.SelectedNode = node.NextVisibleNode; 
    node.TreeView.Focus(); 
} 
+0

Großartig, aber wie wäre es, eine der Antworten als akzeptierte Lösung zu akzeptieren? –

+0

Ich gebe Seele deiner ersten Antwort danke thorsten-dittmar – Mary

0

Für ASP.NET Treeview:

/// <summary> 
    /// MoveComponentUpLinkButton_Click 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    protected void MoveComponentUpLinkButton_Click(object sender, EventArgs e) 
    { 
     // Get the selected node 
     TreeNode sourceNode = this.MyTreeview.SelectedNode; 
     if (sourceNode != null) 
     { 
      // Get the selected node's parent 
      TreeNode parentNode = this.MyTreeview.SelectedNode.Parent; 
      if (parentNode != null) 
      { 
       int index = -1; 

       // For each node in selected nodes parent 
       for (int j = 0; j < parentNode.ChildNodes.Count; j++) 
       { 
        // If we found the selected node 
        if (sourceNode == parentNode.ChildNodes[j]) 
        { 
         // save index 
         index = j; 
         break; 
        } 
       } 

       // If node is not already at top of list 
       if (index > 0) 
       { 
        // Move it up 
        parentNode.ChildNodes.RemoveAt(index); 
        parentNode.ChildNodes.AddAt(index - 1, sourceNode); 
        sourceNode.Selected = true; 
       } 
      } 
     } 
    } 

    /// <summary> 
    /// MoveComponentDownLinkButton_Click 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    protected void MoveComponentDownLinkButton_Click(object sender, EventArgs e) 
    { 
     // Get the selected node 
     TreeNode sourceNode = this.MyTreeview.SelectedNode; 
     if (sourceNode != null) 
     { 
      // Get the selected node's parent 
      TreeNode parentNode = this.MyTreeview.SelectedNode.Parent; 
      if (parentNode != null) 
      { 
       int index = -1; 

       // For each node in selected nodes parent 
       for (int j = 0; j < parentNode.ChildNodes.Count; j++) 
       { 
        // If we found the selected node 
        if (sourceNode == parentNode.ChildNodes[j]) 
        { 
         // save index 
         index = j; 
         break; 
        } 
       } 

       // If node is not already at botton of list 
       if (index < parentNode.ChildNodes.Count - 1) 
       { 
        // Move it down 
        parentNode.ChildNodes.RemoveAt(index); 
        parentNode.ChildNodes.AddAt(index + 1, sourceNode); 
        sourceNode.Selected = true; 
       } 
      } 
     } 
    } 
Verwandte Themen