Como criar uma propriedade de chave para um nó no TreeView no Visual translation from VPE for Csharp

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 322937
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 311318.

NESTA TAREFA

Sumário
Em versões anteriores do controle TreeView , um do TreeView tem uma propriedade chave onde as informações que pertencem a esse nó podem ser armazenadas. Você pode usar essa chave para se referir a objetos da coleção de nós. Isso é útil se a ordem dos objetos da coleção pode ser alterada ou se você precisar de algum tipo de acesso indexado para os dados subjacentes. A versão do controle TreeView que acompanha o Visual Studio .NET 2002 não possui chave propriedade equivalente.

Se você deseja usar a propriedade de chave , você terá duas opções:
  • Use a propriedade Tag do objeto TreeNode se deve armazenar informações simples sobre o objeto.
  • Se você precisar a funcionalidade de indexação com base em conjunto, você pode estender a classe de TreeNode e implementar IDictionaryEnumerator .
Este artigo passo a passo descreve a segunda opção e fornece um exemplo de como estender a classe TreeNode para adicionar suporte para uma propriedade Key .

back to the top

Estender o controle TreeView

  1. Crie um novo projeto Windows Control Library:
    1. Inicie o Visual Studio .NET ou Microsoft Visual Studio 2005.
    2. No menu arquivo , clique em novo e, em seguida, clique em Project .
    3. Na lista Tipos de projeto , clique em projetos translation from VPE for Csharp Visual .

      Observação No Visual Studio 2005, clique em translation from VPE for Csharp Visual em Tipos de projeto .
    4. Na lista Templates , clique em Windows Control Library .
    5. Na caixa de texto nome , digite TreeViewEX e, em seguida, clique em OK .
    6. No Project Explorer, renomeie o módulo de classe padrão do UserControl1.cs para TreeViewEX.cs .
    7. Na janela Properties para o controle de usuário, altere o nome do controle de UserControl1 para TreeViewEX .
  2. Herda o controle TreeView . Por padrão, um projeto de controle de usuário herda do System.Windows.Forms.UserControl . Altere a declaração de classe para que ele herda System.Windows.Forms.TreeView , da seguinte maneira:

    Observação : não modifique a seção Component Designer gerado código .
    public class TreeViewEX : System.Windows.Forms.TreeView					
  3. Em seguida, crie uma nova classe de TreeNode que herda System.Windows.Forms.TreeNode . Você pode fazer isso no mesmo módulo classe TreeViewEX.cs ou você pode criar um módulo de classe separado. Essa classe também implementa a interface IDictionaryEnumerator e adiciona suporte para enumerar os nós de uma coleção. Neste exemplo, o módulo de classe TreeViewEX.cs existente é usado para essa nova classe. Para criar a classe, adicione a seguinte definição de classe para TreeViewEX.cs :
    public class TreeNode : System.Windows.Forms.TreeNode, IDictionaryEnumerator{    private DictionaryEntry nodeEntry;    private IEnumerator enumerator;    public TreeNode()    {        enumerator = base.Nodes.GetEnumerator();    }    public string NodeKey    {        get        {            return nodeEntry.Key.ToString();        }		        set        {			            nodeEntry.Key = value;        }    }			    public object NodeValue    {        get        {            return nodeEntry.Value;        }        set        {            nodeEntry.Value = value;        }    }    public DictionaryEntry Entry    {        get        {            return nodeEntry;        }    }			    public bool MoveNext()    {        bool Success;        Success = enumerator.MoveNext();        return Success;    }    public object Current    {        get        {            return enumerator.Current;        }    }			    public object Key    {        get        {            return nodeEntry.Key;        }    }    public object Value    {        get        {            return nodeEntry.Value;        }    }    public void Reset()    {        enumerator.Reset();    }}					
  4. Isso conclui o controle TreeView estendido. Agora, verifique se que o projeto compile sem erros clicando em Build Solution no menu Build .
back to the top

Criar o aplicativo cliente

  1. No menu arquivo , clique em novo e, em seguida, clique em Project .
  2. Na lista Tipos de projeto , clique em projetos translation from VPE for Csharp Visual .

    Observação No Visual Studio 2005, clique em translation from VPE for Csharp Visual em Tipos de projeto .
  3. Na lista Templates , clique em Windows Application .
  4. Adicione uma instância do controle TreeViewEX para o formulário padrão do projeto Windows Application:
    1. No menu Ferramentas , clique em Customize Toolbox .
    2. Clique na guia .NET Framework Components .
    3. Clique em Procurar e localize o arquivo TreeViewEX.dll que apenas foi criado.
    4. Clique em OK .
    5. O controle TreeViewEX agora está localizado na caixa de ferramentas. Adicione uma instância deste controle ao formulário.
  5. Adicione dois botões de comando ao formulário.
  6. Cole o seguinte código no evento Load do formulário:
    this.treeViewEX1.Left = 10;this.treeViewEX1.Top = 10;this.treeViewEX1.Width = this.Width - 30;this.treeViewEX1.Height = (int)(this.Height * 0.6);this.treeViewEX1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;this.button1.Top = treeViewEX1.Height + 20;this.button1.Left = 10;this.button1.Width = 200;this.button1.Height = 50;this.button1.Text = "Add Items to TreeViewEx";this.button2.Top = button1.Top + button1.Height + 10;this.button2.Left = 10;this.button2.Width = 200;this.button2.Height = 50;this.button2.Text = "Locate Item in TreeView using the Key Value";this.Height = 400;					
  7. Cole o seguinte código no evento Click do Button1:
    TreeViewEX.TreeNode tn;string myData;myData = "Extra Information pertaining to Node";tn = new TreeViewEX.TreeNode();tn.Text = "This is node 1";tn.NodeKey = "node1";tn.NodeValue = myData + " 1";treeViewEX1.Nodes.Add(tn);tn = new TreeViewEX.TreeNode();tn.Text = "This is node 2";tn.NodeKey = "node2";tn.NodeValue = myData + " 2";treeViewEX1.Nodes.Add(tn);tn = new TreeViewEX.TreeNode();tn.Text = "This is node 3";tn.NodeKey = "node3";tn.NodeValue = myData + " 3";treeViewEX1.Nodes.Add(tn);tn = new TreeViewEX.TreeNode();tn.Text = "This is node 4";tn.NodeKey = "node4";tn.NodeValue = myData + " 4";treeViewEX1.Nodes.Add(tn);tn = new TreeViewEX.TreeNode();tn.Text = "This is node 5";tn.NodeKey = "node5";tn.NodeValue = myData + "5";treeViewEX1.Nodes.Add(tn);tn = new TreeViewEX.TreeNode();tn.Text = "This is node 6";tn.NodeKey = "node6";tn.NodeValue = myData + " 6";treeViewEX1.Nodes.Add(tn);					
    Observação O código deve ser alterado no Visual Studio 2005. Quando você cria um projeto Windows Forms, translation from VPE for Csharp Visual adiciona um formulário para o projeto por padrão e nomes de formulário Form1. Os dois arquivos que representam o formulário são chamados de Form1.cs e Form1.Designer.cs. Tem de escrever seu código no Form1.cs. O ficheiro designer.cs é onde o Windows Forms Designer escreve o código que implementa todas as ações que você executou adicionando controles a partir da caixa de ferramentas. Para obter mais informações sobre o Windows Forms Designer no Visual translation from VPE for Csharp 2005, visite o seguinte site:
  8. Cole o seguinte código no evento Click de Button2:
    // Locate the third node using the NodeKey.string myData;string nodeInfo;foreach (TreeViewEX.TreeNode tn in treeViewEX1.Nodes){    if (tn.NodeKey == "node6")    {        nodeInfo = "Name :" + tn.Text;        myData = (string)tn.NodeValue;        nodeInfo += "Data: " + myData;        MessageBox.Show(nodeInfo, "Node Specific Information", MessageBoxButtons.OK, MessageBoxIcon.Information);        break;    }}					
  9. Clique em Adicionar itens a serem TreeViewEX . Isso adiciona nós de exemplo para TreeView e define valores para os membros de chave e dados.
  10. Clique em localizar o item . Depois de clicar neste botão, uma caixa de mensagem aparece e mostra informações sobre o nó 6 com base no uso da propriedade chave em um loop foreach .
back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 322937 - Última Revisão: 12/11/2006 21:02:54 - Revisão: 2.3

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2005 Express Edition

  • kbmt kbhowtomaster KB322937 KbMtpt
Comentários