Você está offline; aguardando reconexão

Como criar uma propriedade de chave para um nó no TreeView no Visual Basic

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: 311318
Para obter uma versão Microsoft Visual translation from VPE for Csharp neste artigo, consulte 322937.
Sumário
Em versões anteriores do controle TreeView , um nó TreeView possui uma propriedade Key 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 está incluído no Microsoft Visual Studio 2005 e no Microsoft Visual Studio .NET 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 .

Estender o controle TreeView

  1. Crie um novo projeto Windows Control Library:
    1. Inicie o Visual Studio .NET ou 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 do Visual Basic e nomeie o projeto TreeViewEX.

      Observação No Visual Studio 2005, clique em Visual Basic na lista Tipos de projeto .
    4. No Project Explorer, renomeie o módulo de classe padrão do UserControl1.vb para TreeViewEX.vb.
    5. 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 gerou código".
    Public Class TreeViewEX  Inherits 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.vb 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.vb existente é usado para essa nova classe. Para criar a classe, adicione a seguinte definição de classe para TreeViewEX.vb .
    Public Class TreeNode    Inherits System.Windows.Forms.TreeNode    Implements IDictionaryEnumerator    Private nodeEntry As DictionaryEntry    Private enumerator As IEnumerator    Public Sub New()        enumerator = MyBase.Nodes.GetEnumerator()    End Sub    Public Property NodeKey() As String        Get            Return nodeEntry.Key.ToString()        End Get        Set(ByVal Value As String)            nodeEntry.Key = Value        End Set    End Property    Public Property NodeValue() As Object        Get            Return nodeEntry.Value        End Get        Set(ByVal Value As Object)            nodeEntry.Value = Value        End Set    End Property    Public Overridable Overloads ReadOnly Property Entry() As DictionaryEntry _        Implements IDictionaryEnumerator.Entry        Get            Return nodeEntry        End Get    End Property    Public Overridable Overloads Function MoveNext() As Boolean _        Implements IDictionaryEnumerator.MoveNext        Dim Success As Boolean        Success = enumerator.MoveNext()        Return Success    End Function    Public Overridable Overloads ReadOnly Property Current() As Object _        Implements IEnumerator.Current        Get            Return enumerator.Current        End Get    End Property    Public Overridable Overloads ReadOnly Property Key() As Object _        Implements IDictionaryEnumerator.Key        Get            Return nodeEntry.Key        End Get    End Property    Public Overridable Overloads ReadOnly Property Value() As Object _        Implements IDictionaryEnumerator.Value        Get            Return nodeEntry.Value        End Get    End Property    Public Overridable Overloads Sub Reset() _        Implements IEnumerator.Reset        enumerator.Reset()    End SubEnd Class					
  4. Isso conclui o controle TreeView estendido. Agora, verifique se que o projeto compile sem erros clicando em Build Solution no menu Build .

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 do Visual Basic .

    Observação No Visual Studio 2005, clique em Visual Basic na lista Tipos de projeto .
  3. Na lista Templates , clique em Windows Application e, em seguida, clique em OK .
  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.
    Me.TreeViewEX1.Left = 10Me.TreeViewEX1.Top = 10Me.TreeViewEX1.Width = Me.Width - 30Me.TreeViewEX1.Height = CInt(Me.Height * 0.6)Me.TreeViewEX1.Anchor = AnchorStyles.Top Or AnchorStyles.Left _    Or AnchorStyles.RightMe.Button1.Top = TreeViewEX1.Height + 20Me.Button1.Left = 10Me.Button1.Width = 200Me.Button1.Height = 50Me.Button1.Text = "Add Items to TreeViewEx"Me.Button2.Top = Button1.Top + Button1.Height + 10Me.Button2.Left = 10Me.Button2.Width = 200Me.Button2.Height = 50Me.Button2.Text = "Locate Item in TreeView using the Key Value"Me.Height = 400					
  7. Cole o seguinte código no evento Click do Button1.
    Dim tn As TreeViewEX.TreeNodeDim myData As StringmyData = "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)					
  8. Cole o seguinte código no evento Click de Button2.
    ' Locate the third node using the NodeKeyDim myData As StringDim nodeInfo As StringDim tn As TreeViewEX.TreeNodeFor Each tn In TreeViewEX1.Nodes    If (tn.NodeKey = "node6") Then        nodeInfo = "Name :" + tn.Text        myData = CStr(tn.NodeValue)        nodeInfo += "Data: " + myData        MessageBox.Show(nodeInfo, "Node Specific Information", _            MessageBoxButtons.OK, MessageBoxIcon.Information)        Exit For    End IfNext					
  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 .

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 311318 - Última Revisão: 12/06/2006 23:26:02 - Revisão: 3.3

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB311318 KbMtpt
Comentários
m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">