다음을 통해 공유


TreeView.BeforeLabelEdit 이벤트

트리 노드 레이블 텍스트가 편집되기 전에 발생합니다.

네임스페이스: System.Windows.Forms
어셈블리: System.Windows.Forms(system.windows.forms.dll)

구문

‘선언
Public Event BeforeLabelEdit As NodeLabelEditEventHandler
‘사용 방법
Dim instance As TreeView
Dim handler As NodeLabelEditEventHandler

AddHandler instance.BeforeLabelEdit, handler
public event NodeLabelEditEventHandler BeforeLabelEdit
public:
event NodeLabelEditEventHandler^ BeforeLabelEdit {
    void add (NodeLabelEditEventHandler^ value);
    void remove (NodeLabelEditEventHandler^ value);
}
/** @event */
public void add_BeforeLabelEdit (NodeLabelEditEventHandler value)

/** @event */
public void remove_BeforeLabelEdit (NodeLabelEditEventHandler value)
JScript에서는 이벤트를 사용할 수 있지만 새로 선언할 수는 없습니다.

설명

이벤트 처리에 대한 자세한 내용은 이벤트 사용을 참조하십시오.

예제

다음 코드 예제에서는 BeforeLabelEditAfterSelectTopNode 멤버를 사용하는 방법을 보여 줍니다. 이 예제를 실행하려면 TreeView1이라는 TreeView가 들어 있는 폼에 다음 코드를 붙여넣습니다. 폼의 생성자나 Load 메서드에서 InitializeTreeView 메서드를 호출합니다.

    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 LabelEdit property to false so the user cannot
        ' edit this label.  
        If (e.Node Is TreeView1.TopNode) Then

            TreeView1.LabelEdit = False
            MessageBox.Show("You are not allowed to edit the top node")
        End If

        ' Set the LabelEdit property to true again.
        TreeView1.LabelEdit = True
    End Sub

...
    ' 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
 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 LabelEdit property to false so the user cannot
        // edit this label.  
        if (e.Node == TreeView1.TopNode)

        {
            TreeView1.LabelEdit = false;
            MessageBox.Show("You are not allowed to edit the top node");
        }
        // Set the LabelEdit property to true again.
        TreeView1.LabelEdit = true;
    }

...
   // 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;
        }
    }
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 LabelEdit property to false so the user cannot
      // edit this label.  
      if ( e->Node == TreeView1->TopNode )
      {
         TreeView1->LabelEdit = false;
         MessageBox::Show( "You are not allowed to edit the top node" );
      }

      
      // Set the LabelEdit property to true again.
      TreeView1->LabelEdit = true;
   }

...
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;
      }
   }
    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.set_Dock(System.Windows.Forms.DockStyle.Left);
        treeView1.set_Location(new System.Drawing.Point(0, 0));
        treeView1.set_Name("TreeView1");
        treeView1.set_Size(new System.Drawing.Size(152, 266));
        treeView1.set_TabIndex(1);
        // Associate the event-handling methods with the
        // BeforeLabeEdit and the AfterSelect events.
        treeView1.add_BeforeLabelEdit(
            new NodeLabelEditEventHandler(treeView1_BeforeLabelEdit));
        treeView1.add_AfterSelect(new TreeViewEventHandler(
            treeView1_AfterSelect));
        // Set the LabelEdit property to true to allow the 
        // user to edit the TreeNode text.
        this.treeView1.set_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.
        for (int iCtr = 0; iCtr < files.length; iCtr++) {
            String file = files[iCtr];
            TreeNode node = new TreeNode(file);
            node.set_Tag(filePath + "\\" + file);
            nodes.Add(node);
        }

        TreeNode treeNodes[] = new TreeNode[nodes.get_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.set_Tag(filePath);
        // Add topNode to the TreeView.
        treeView1.get_Nodes().Add(topNode);
        // Add the TreeView to the form.
        this.get_Controls().Add(treeView1);
    } //InitializeTreeView

    private void treeView1_BeforeLabelEdit(Object sender,
        NodeLabelEditEventArgs e)
    {
        // Determine whether the user has selected the top node. If so,
        // change the LabelEdit property to false so the user cannot
        // edit this label.  
        if (e.get_Node().Equals(treeView1.get_TopNode())) {
            treeView1.set_LabelEdit(false);
            MessageBox.Show("You are not allowed to edit the top node");
        }
        // Set the LabelEdit property to true again.
        treeView1.set_LabelEdit(true);
    } //treeView1_BeforeLabelEdit

...
    // Handle the After_Select event.
    private void treeView1_AfterSelect(Object sender,
        System.Windows.Forms.TreeViewEventArgs e)
    {
        // Vary the response depending on which TreeViewAction
        // triggered the event. 
        switch (e.get_Action()) {
            case TreeViewAction.ByKeyboard:
                MessageBox.Show("You like the keyboard!");
                break;
            case TreeViewAction.ByMouse:
                MessageBox.Show("You like the mouse!");
                break;
        }
    } //treeView1_AfterSelect

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

TreeView 클래스
TreeView 멤버
System.Windows.Forms 네임스페이스
OnBeforeLabelEdit
TreeView.AfterLabelEdit 이벤트
OnAfterLabelEdit