Share via


Como: Anexar um atalho Menu a um nó TreeView

O Windows Forms TreeView controle exibe uma hierarquia de nós, semelhantes a arquivos e pastas exibidas no painel esquerdo do Windows Explorer. Definindo o ContextMenuStrip propriedade, você pode fornecer operações sensíveis ao contexto para o usuário quando clica com o botão direito do mouse eles na TreeView controle. Associando um ContextMenuStrip componente com individual TreeNode itens, você pode adicionar um nível personalizado de funcionalidade do menu de atalho para o TreeView controles.

Para associar um menu de atalho com um TreeNode programaticamente

  1. Criar uma instância de um TreeView controle com as configurações de propriedade adequadas, criar uma raiz TreeNodee, em seguida, adicione subnós.

  2. Criar uma instância de um ContextMenuStrip componente e, em seguida, adicione um ToolStripMenuItem para cada operação que você deseja tornar disponível em time de execução.

  3. conjunto o ContextMenuStrip propriedade do apropriadas TreeNode ao menu de atalho que você criar.

  4. Quando essa propriedade é definida, o menu de atalho será exibido quando clicar com o botão direito do mouse no nó.

O exemplo de código a seguir cria um básico TreeView e ContextMenuStrip associados à raiz TreeNode da TreeView. Você precisará personalizar as opções de menu àqueles que se ajustam a TreeView Você está desenvolvendo. Além disso, você vai querer gravar código para manipular o Click eventos para esses itens de menu.

' Declare the TreeView and ContextMenuStrip
Private menuTreeView As TreeView
Private docMenu As ContextMenuStrip


Public Sub InitializeMenuTreeView() 

    ' Create the TreeView.
    menuTreeView = New TreeView()
    menuTreeView.Size = New Size(200, 200)

    ' Create the root node.
    Dim docNode As New TreeNode("Documents")

    ' Add some additional nodes.
    docNode.Nodes.Add("phoneList.doc")
    docNode.Nodes.Add("resume.doc")

    ' Add the root nodes to the TreeView.
    menuTreeView.Nodes.Add(docNode)

    ' Create the ContextMenuStrip.
    docMenu = New ContextMenuStrip()

    'Create some menu items.
    Dim openLabel As New ToolStripMenuItem()
    openLabel.Text = "Open"
    Dim deleteLabel As New ToolStripMenuItem()
    deleteLabel.Text = "Delete"
    Dim renameLabel As New ToolStripMenuItem()
    renameLabel.Text = "Rename"

    'Add the menu items to the menu.
    docMenu.Items.AddRange(New ToolStripMenuItem() _
        {openLabel, deleteLabel, renameLabel})

    ' Set the ContextMenuStrip property to the ContextMenuStrip.
    docNode.ContextMenuStrip = docMenu

    ' Add the TreeView to the form.
    Me.Controls.Add(menuTreeView)

End Sub


// Declare the TreeView and ContextMenuStrip
private TreeView menuTreeView;
private ContextMenuStrip docMenu;

public void InitializeMenuTreeView()
{
    // Create the TreeView.
    menuTreeView = new TreeView();
    menuTreeView.Size = new Size(200, 200);

    // Create the root node.
    TreeNode docNode = new TreeNode("Documents");

    // Add some additional nodes.
    docNode.Nodes.Add("phoneList.doc");
    docNode.Nodes.Add("resume.doc");

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

    // Create the ContextMenuStrip.
    docMenu = new ContextMenuStrip();

    //Create some menu items.
    ToolStripMenuItem openLabel = new ToolStripMenuItem();
    openLabel.Text = "Open";
    ToolStripMenuItem deleteLabel = new ToolStripMenuItem();
    deleteLabel.Text = "Delete";
    ToolStripMenuItem renameLabel = new ToolStripMenuItem();
    renameLabel.Text = "Rename";

    //Add the menu items to the menu.
    docMenu.Items.AddRange(new ToolStripMenuItem[]{openLabel, 
        deleteLabel, renameLabel});

    // Set the ContextMenuStrip property to the ContextMenuStrip.
    docNode.ContextMenuStrip = docMenu;

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

    // Declare the TreeView and ContextMenuStrip
private:
    TreeView^ menuTreeView;
private:
    System::Windows::Forms::ContextMenuStrip^ docMenu;

public:
    void InitializeMenuTreeView()
    {
        // Create the TreeView.
        menuTreeView = gcnew TreeView();
        menuTreeView->Size = System::Drawing::Size(200, 200);

        // Create the root node.
        TreeNode^ docNode = gcnew TreeNode("Documents");

        // Add some additional nodes.
        docNode->Nodes->Add("phoneList.doc");
        docNode->Nodes->Add("resume.doc");

        // Add the root nodes to the TreeView.
        menuTreeView->Nodes->Add(docNode);

        // Create the ContextMenuStrip.
        docMenu = gcnew System::Windows::Forms::ContextMenuStrip();

        //Create some menu items.
        ToolStripMenuItem^ openLabel = gcnew ToolStripMenuItem();
        openLabel->Text = "Open";
        ToolStripMenuItem^ deleteLabel = gcnew ToolStripMenuItem();
        deleteLabel->Text = "Delete";
        ToolStripMenuItem^ renameLabel = gcnew ToolStripMenuItem();
        renameLabel->Text = "Rename";

        //Add the menu items to the menu.
        docMenu->Items->AddRange(gcnew array<ToolStripMenuItem^>{openLabel,
            deleteLabel, renameLabel});

        // Set the ContextMenuStrip property to the ContextMenuStrip.
        docNode->ContextMenuStrip = docMenu;

        // Add the TreeView to the form.
        this->Controls->Add(menuTreeView);
    }

Consulte também

Referência

ContextMenuStrip

Outros recursos

TreeView controle (Windows Forms)