• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

freaklori

[Resolvido] TreeView : Mudar posicão de nodes

9 mensagens neste tópico

Ola,

Estou com uma certa dificuldade em mover os noves dentro da minha Treeview

o objectivo será

No1

-No1.0

-No1.1

-No1.2

O Objectivo será mover (associado ao evento do botao) por exemplo o No1.2 para o No.1.1 e o No.1.1 passar para a posicao No.1.2

E o resultado final da Treeview seria

No1

-No1.0

-No1.2

-No1.1

Sugestoes??

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que eu tenho é

  Private Sub Mover_Node(ByVal No As TreeNode, ByVal Accao As String)
    If No Is Nothing Then Exit Sub

    If Accao.ToUpper = "CIMA" Then
      Dim NoSeleccionado As TreeNode = No
      Dim NoCima As TreeNode = No.PrevNode

      NoCima = No
      NoSeleccionado = No.PrevNode


    ElseIf Accao.ToUpper = "BAIXO" Then

    End If

  End Sub

Mas nao funciona....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva,

Eu estou associar ao evento do botao...

Vou dar uma olhadela ao site

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz Assim...


  Private Sub Mover_Node(ByVal No As TreeNode, ByVal Accao As String)
    If No Is Nothing Then Exit Sub

    If Accao.ToUpper = "CIMA" Then
      Try
        No.Parent.Nodes.Insert(No.Index - 1, No.Clone)
        No.Remove()
      Catch ex As Exception
      End Try
     
    ElseIf Accao.ToUpper = "BAIXO" Then
      No.Parent.Nodes.Insert(No.Index + 2, CType(No.Clone, TreeNode))
      No.Remove()
    End If

  End Sub


:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, está resolvido. Mas indicar a acção através de texto não é sem dúvida uma boa prática.

Cria um as opções que pretendes e depois utilizas o intellissense. É menos provável existirem erros no código e é mais simples de escrever o código.

Além disso só tens um Try Catch na primeira opção!

Experimenta desta forma:

(atenção não testado e pode precisar de alterações)

    Enum SelectOption
        CIMA= 0
        BAIXO = 1
    End Enum

Private Sub Mover_Node(ByVal No As TreeNode, ByVal Accao As SelectOption)
    If No Is Nothing Then Exit Sub

    If Accao.ToUpper = SelectOption.CIMA Then
      Try
        No.Parent.Nodes.Insert(No.Index - 1, No.Clone)
        No.Remove()
      Catch ex As Exception
      End Try

    ElseIf Accao.ToUpper = SelectOption.BAIXO Then
      Try
          No.Parent.Nodes.Insert(No.Index + 2, CType(No.Clone, TreeNode))
          No.Remove()
      Catch ex As Exception
      End Try
    End If

  End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Sim realmente assim evitaria algum possivel erro de codigo atraves dessa opçao enum.. e o try no segundo if tb é essencial!

Obg

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora