TreeView.BeforeLabelEdit 事件

定义

在编辑树节点标签前发生。

public:
 event System::Windows::Forms::NodeLabelEditEventHandler ^ BeforeLabelEdit;
public event System.Windows.Forms.NodeLabelEditEventHandler BeforeLabelEdit;
public event System.Windows.Forms.NodeLabelEditEventHandler? BeforeLabelEdit;
member this.BeforeLabelEdit : System.Windows.Forms.NodeLabelEditEventHandler 
Public Custom Event BeforeLabelEdit As NodeLabelEditEventHandler 

事件类型

示例

下面的代码示例演示如何使用 BeforeLabelEditAfterSelectTopNode 成员。 若要运行此示例,请将以下代码粘贴到包含 TreeView 名为 的 TreeView1控件的窗体中。 InitializeTreeView在窗体的构造函数或 Load 方法中调用 方法。

private:
   void InitializeTreeView()
   {
      
      // Construct the TreeView object.
      this->TreeView1 = gcnew System::Windows::Forms::TreeView;
      
      // Set dock, location, size name, and tab order
      // values for the TreeView object.
      TreeView1->Dock = System::Windows::Forms::DockStyle::Left;
      TreeView1->Location = System::Drawing::Point( 0, 0 );
      TreeView1->Name = "TreeView1";
      TreeView1->Size = System::Drawing::Size( 152, 266 );
      TreeView1->TabIndex = 1;
      
      // Associate the event-handling methods with the
      // BeforeLabeEdit and the AfterSelect events.
      TreeView1->BeforeLabelEdit += gcnew NodeLabelEditEventHandler( this, &Form1::TreeView1_BeforeLabelEdit );
      TreeView1->AfterSelect += gcnew TreeViewEventHandler( this, &Form1::TreeView1_AfterSelect );
      
      // Set the LabelEdit property to true to allow the 
      // user to edit the TreeNode text.
      this->TreeView1->LabelEdit = true;
      
      // Declare and create objects needed to populate 
      // the TreeView.
      array<String^>^files = {"bigPresentation.ppt","myFinances.xls","myResume.doc"};
      ;
      String^ filePath = "c:\\myFiles";
      System::Collections::ArrayList^ nodes = gcnew System::Collections::ArrayList;
      
      // Create a node for each file, setting the Text property to the 
      // file's name and the Tag property to file's fully-qualified name.
      System::Collections::IEnumerator^ myEnum = files->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         String^ file = safe_cast<String^>(myEnum->Current);
         TreeNode^ node = gcnew TreeNode( file );
         node->Tag = String::Concat( filePath, "\\", file );
         nodes->Add( node );
      }

      array<TreeNode^>^treeNodes = gcnew array<TreeNode^>(nodes->Count);
      nodes->CopyTo( treeNodes );
      
      // Create a new node named topNode and add the ArrayList of 
      // nodes to topNode.
      TreeNode^ topNode = gcnew TreeNode( "myFiles",treeNodes );
      topNode->Tag = filePath;
      
      // Add topNode to the TreeView.
      TreeView1->Nodes->Add( topNode );
      
      // Add the TreeView to the form.
      this->Controls->Add( TreeView1 );
   }

   void TreeView1_BeforeLabelEdit( Object^ /*sender*/, NodeLabelEditEventArgs^ e )
   {
      
      // Determine whether the user has selected the top node. If so,
      // change the CancelEdit property to true to cancel the edit.
      if ( e->Node == TreeView1->TopNode )
      {
         e->CancelEdit = true;
         MessageBox::Show( "You are not allowed to edit the top node" );
      }

   }
private void InitializeTreeView()
{

    // Construct the TreeView object.
    this.TreeView1 = new System.Windows.Forms.TreeView();

    // Set dock, location, size name, and tab order
    // values for the TreeView object.
    TreeView1.Dock = System.Windows.Forms.DockStyle.Left;
    TreeView1.Location = new System.Drawing.Point(0, 0);
    TreeView1.Name = "TreeView1";
    TreeView1.Size = new System.Drawing.Size(152, 266);
    TreeView1.TabIndex = 1;
    
    // Associate the event-handling methods with the
    // BeforeLabeEdit and the AfterSelect events.
    TreeView1.BeforeLabelEdit += 
        new NodeLabelEditEventHandler(TreeView1_BeforeLabelEdit);
    TreeView1.AfterSelect += 
        new TreeViewEventHandler(TreeView1_AfterSelect);

    // Set the LabelEdit property to true to allow the 
    // user to edit the TreeNode text.
    this.TreeView1.LabelEdit = true;

    // Declare and create objects needed to populate 
    // the TreeView.
    string[] files = new string[]{"bigPresentation.ppt", 
        "myFinances.xls", "myResume.doc"};; 
    string filePath = "c:\\myFiles";
    System.Collections.ArrayList nodes = 
        new System.Collections.ArrayList();

    // Create a node for each file, setting the Text property to the 
    // file's name and the Tag property to file's fully-qualified name.
    foreach ( string file in files )
    {
        TreeNode node = new TreeNode(file);
        node.Tag = filePath+"\\"+file;
        nodes.Add(node);
    }

    TreeNode[] treeNodes = new TreeNode[nodes.Count];
    nodes.CopyTo(treeNodes);

    // Create a new node named topNode and add the ArrayList of 
    // nodes to topNode.
    TreeNode topNode = new TreeNode("myFiles",  treeNodes);
    topNode.Tag = filePath;

    // Add topNode to the TreeView.
    TreeView1.Nodes.Add(topNode);

    // Add the TreeView to the form.
    this.Controls.Add(TreeView1);
}

private void TreeView1_BeforeLabelEdit(object sender, 
    NodeLabelEditEventArgs e)
{

    // Determine whether the user has selected the top node. If so,
    // change the CancelEdit property to true to cancel the edit.  
    if (e.Node == TreeView1.TopNode)

    {
        e.CancelEdit = true;
        MessageBox.Show("You are not allowed to edit the top node");
    }
}
Private Sub InitializeTreeView()

    ' Construct the TreeView object.
    Me.TreeView1 = New System.Windows.Forms.TreeView

    ' Set dock, location, size name, and tab order
    ' values for the TreeView object.

    With TreeView1
        .Dock = System.Windows.Forms.DockStyle.Left
        .Location = New System.Drawing.Point(0, 0)
        .Name = "TreeView1"
        .Size = New System.Drawing.Size(152, 266)
        .TabIndex = 1
    End With

    ' Set the LabelEdit property to true to allow the 
    ' user to edit the TreeNode text.
    Me.TreeView1.LabelEdit = True

    ' Declare and create objects needed to populate 
    ' the TreeView.
    Dim file, files(), filePath As String
    files = New String() {"bigPresentation.ppt", "myFinances.xls", _
        "myResume.doc"}
    filePath = "c:\myFiles"
    Dim nodes As New System.Collections.ArrayList

    ' Create a node for each file, setting the Text property to the 
    ' file's name and the Tag property to file's fully-qualified name.
    For Each file In files
        Dim node As New TreeNode(file)
        node.Tag = filePath & "\" & file
        nodes.Add(node)
    Next

    ' Create a new node named topNode and add the ArrayList of 
    ' nodes to topNode.
    Dim topNode As New TreeNode("myFiles", _
        nodes.ToArray(GetType(TreeNode)))

    topNode.Tag = filePath

    ' Add topNode to the TreeView.
    TreeView1.Nodes.Add(topNode)

    ' Add the TreeView to the form.
    Me.Controls.Add(TreeView1)
End Sub

Private Sub TreeView1_BeforeLabelEdit(ByVal sender As Object, _
    ByVal e As NodeLabelEditEventArgs) Handles TreeView1.BeforeLabelEdit

    ' Determine whether the user has selected the top node. If so,
    ' change the CancelEdit property to true to cancel the edit.  
    If (e.Node Is TreeView1.TopNode) Then

        e.CancelEdit = True
        MessageBox.Show("You are not allowed to edit the top node")
    End If


End Sub
private:
   // Handle the After_Select event.
   void TreeView1_AfterSelect( System::Object^ /*sender*/, System::Windows::Forms::TreeViewEventArgs^ e )
   {
      
      // Vary the response depending on which TreeViewAction
      // triggered the event. 
      switch ( (e->Action) )
      {
         case TreeViewAction::ByKeyboard:
            MessageBox::Show( "You like the keyboard!" );
            break;

         case TreeViewAction::ByMouse:
            MessageBox::Show( "You like the mouse!" );
            break;
      }
   }
// Handle the After_Select event.
private void TreeView1_AfterSelect(System.Object sender, 
    System.Windows.Forms.TreeViewEventArgs e)
{

    // Vary the response depending on which TreeViewAction
    // triggered the event. 
    switch((e.Action))
    {
        case TreeViewAction.ByKeyboard:
            MessageBox.Show("You like the keyboard!");
            break;
        case TreeViewAction.ByMouse:
            MessageBox.Show("You like the mouse!");
            break;
    }
}
' Handle the After_Select event.
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, _
    ByVal e As System.Windows.Forms.TreeViewEventArgs) _
        Handles TreeView1.AfterSelect

    ' Vary the response depending on which TreeViewAction
    ' triggered the event. 
    Select Case (e.Action)
        Case TreeViewAction.ByKeyboard
            MessageBox.Show("You like the keyboard!")
        Case TreeViewAction.ByMouse
            MessageBox.Show("You like the mouse!")
    End Select
End Sub

注解

有关如何处理事件的详细信息,请参阅 处理和引发事件

适用于

另请参阅