TreeView.LabelEdit Propriété

Définition

Obtient ou définit une valeur indiquant si le texte d’étiquette des nœuds d’arbre peut être modifié.

C#
public bool LabelEdit { get; set; }

Valeur de propriété

true si le texte d'étiquette des nœuds d'arbre peut être modifié ; sinon, false. La valeur par défaut est false.

Exemples

L’exemple de code suivant permet à l’utilisateur de modifier des nœuds d’arborescence non racine à l’aide d’un ContextMenu. Lorsque l’utilisateur clique avec le bouton droit sur la souris, le TreeNode à cette position est déterminé et stocké dans une variable nommée mySelectedNode. Si un nœud d’arborescence non racine a été sélectionné, il est placé dans un état modifiable, ce qui permet à l’utilisateur de modifier l’étiquette du nœud. Une fois que l’utilisateur a cessé de modifier l’étiquette du nœud d’arborescence, le nouveau texte d’étiquette est évalué et enregistré. Pour cet exemple, plusieurs caractères sont considérés comme non valides dans le texte de l’étiquette. Si l’un des caractères non valides se trouve dans la chaîne d’étiquette ou si la chaîne est vide, l’utilisateur est averti de l’erreur et l’étiquette est retournée à son texte précédent.

C#
/* Get the tree node under the mouse pointer and
   save it in the mySelectedNode variable. */
private void treeView1_MouseDown(object sender,
  System.Windows.Forms.MouseEventArgs e)
{
   mySelectedNode = treeView1.GetNodeAt(e.X, e.Y);
}

private void menuItem1_Click(object sender, System.EventArgs e)
{
   if (mySelectedNode != null && mySelectedNode.Parent != null)
   {
      treeView1.SelectedNode = mySelectedNode;
      treeView1.LabelEdit = true;
      if(!mySelectedNode.IsEditing)
      {
         mySelectedNode.BeginEdit();
      }
   }
   else
   {
      MessageBox.Show("No tree node selected or selected node is a root node.\n" +
         "Editing of root nodes is not allowed.", "Invalid selection");
   }
}

private void treeView1_AfterLabelEdit(object sender,
         System.Windows.Forms.NodeLabelEditEventArgs e)
{
   if (e.Label != null)
   {
     if(e.Label.Length > 0)
     {
        if (e.Label.IndexOfAny(new char[]{'@', '.', ',', '!'}) == -1)
        {
           // Stop editing without canceling the label change.
           e.Node.EndEdit(false);
        }
        else
        {
           /* Cancel the label edit action, inform the user, and
              place the node in edit mode again. */
           e.CancelEdit = true;
           MessageBox.Show("Invalid tree node label.\n" +
              "The invalid characters are: '@','.', ',', '!'",
              "Node Label Edit");
           e.Node.BeginEdit();
        }
     }
     else
     {
        /* Cancel the label edit action, inform the user, and
           place the node in edit mode again. */
        e.CancelEdit = true;
        MessageBox.Show("Invalid tree node label.\nThe label cannot be blank",
           "Node Label Edit");
        e.Node.BeginEdit();
     }
   }
}

Remarques

La BeginEdit méthode fonctionne uniquement si la LabelEdit propriété est true. Si LabelEdit est false lorsque vous tentez de modifier l’étiquette, une exception est levée et le nœud d’arborescence ne sera pas placé dans un état modifiable.

S’applique à

Produit Versions
.NET Framework 1.1, 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

Voir aussi