elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 05:19  


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  Eliminar Expand/Collapse del TreeView al hacer double click
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Eliminar Expand/Collapse del TreeView al hacer double click  (Leído 1,203 veces)
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Eliminar Expand/Collapse del TreeView al hacer double click
« en: 10 Enero 2011, 18:22 »

Bueno, quien no tuvo este problema? Querer hacer un doble click en un nodo y realizar una acción pero sin que el nodo se expanda?
Tuve este problema y en internet no hay ninguna solución. Entonces decidí postear la que se me ocurrió, que la verdad funciona muy bien y es muy sencilla.

Suponiendo que el treeview se llama tvTree y que ya tiene nodos agregados:

Código
Public cancelAction As Boolean = True
 
Private Sub tvTree_BeforeExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles tvTree.BeforeExpand
      e.Cancel = cancelAction
End Sub
 
Private Sub tvTree_BeforeCollapse(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles tvTree.BeforeCollapse
       e.Cancel = cancelAction
End Sub
 
Private Sub tvTree_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles tvTree.MouseDown
 
Dim node as Treenode = tvTree.GetNodeAt(e.X, e.Y)
       If node.Bounds.IntersectsWith(New Rectangle(e.X, e.Y, e.X, e.Y)) Then
               cancelAction = True
       Else
cancelAction = False
       End If
 
End Sub

Espero les sirva.

Saludos!

#EDIT

Encontre una mejora para el codigo sitado arriba. Funciona mucho mejor y no tiene resultados indeseados. Todas las modificaciones son en tvTree_MouseDown
Se contempla si los nodos tienen imagenes o no.

Código
        Dim node As TreeNode = TreeView1.GetNodeAt(e.X, e.Y) 'Obtengo el nodo donde hice click
 
       If node Is Nothing Then Exit Sub 'Si no hay nodo, salgo
 
       Dim imgWid As Integer = 16 'Ancho de imagen del nodo / imgWid = 0 si no tiene imagen
       Dim rect As Rectangle = New Rectangle(node.Bounds.X - imgWid, node.Bounds.Y, node.Bounds.Width + imgWid, node.Bounds.Height)
 
       If rect.Contains(e.X, e.Y) Then
           cancelAction = True
       Else
           cancelAction = False
       End If

Otros saludos!




« Última modificación: 10 Enero 2011, 19:41 por elmaro » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Guia Como hacer para mover el mouse y hacer click
Programación Visual Basic
gmf_321 7 2,971 Último mensaje 4 Enero 2007, 18:39
por Sancho.Mazorka
Manual Como hacer para mover el mouse y hacer click en vb
Programación Visual Basic
gmf_321 1 2,225 Último mensaje 24 Septiembre 2006, 17:41
por Dahmer
Hacer click en un link con webbrowser
Programación Visual Basic
naderST 3 613 Último mensaje 10 Mayo 2008, 12:07
por ~~
Hacer un simple click
Programación Visual Basic
Littl3 1 512 Último mensaje 29 Mayo 2009, 16:48
por Dessa
[VBScript] se podría hacer click??
Scripting
xassiz_ 4 1,741 Último mensaje 30 Marzo 2010, 14:35
por xassiz_
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines