Jump to content
freaklori

[Resolvido] TreeView : Mudar posicão de nodes

Recommended Posts

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


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Share this post


Link to post
Share on other sites
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....


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Share this post


Link to post
Share on other sites
freaklori

Viva,

Eu estou associar ao evento do botao...

Vou dar uma olhadela ao site

Cumps


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Share this post


Link to post
Share on other sites
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


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.