Ir para o conteúdo
freaklori

[Resolvido] TreeView : Mudar posicão de nodes

Mensagens Recomendadas

freaklori    0
freaklori

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
freaklori    0
freaklori

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....

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
freaklori    0
freaklori

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
freaklori    0
freaklori

Boas,

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

Obg

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade