Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: TheGhost(Z) en 26 Enero 2011, 20:04 PM

Título: Llamar una SubRutina
Publicado por: TheGhost(Z) en 26 Enero 2011, 20:04 PM
'Hola como llamo a TreeView_AfterSelect desde un Button1
'En VB.60 bastaba con Call TreeView_AfterSelect()
'En VB.NET tiene dos parametros y ya he intentado con:

Call TreeView1_AfterSelect(me, TreeViewEventArgs.Empty)
Call TreeView1_AfterSelect(TreeView1, TreeViewEventArgs.Empty)
Call TreeView1_AfterSelect(Nothing, Nothing)


y no funciona con ninguno de los tres.

Private Sub TreeView_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
    'codigo que lista en un ListView1 de acuerdo al nodo seleccionado
    'ListView1.Items.Clear
    'Etc, etc
End Sub


'muchos botones uno de ellos es button1 que hace actualizar

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Call TreeView1_AfterSelect(TreeView1, TreeViewEventArgs.Empty) '<<  E R R O R
End Sub


Lo que hace el Button1.Clik es llamar al Sub TreeView_AfterSelect así pueda cargar nuevamente listado es decir actualizar el listado.
Título: Re: Llamar una SubRutina
Publicado por: [D4N93R] en 26 Enero 2011, 22:37 PM
AfterSelect es un evento, no lo puedes "llamar" si lo que quieres es hacer invocarlo utiliza OnAfterSelect
Título: Re: Llamar una SubRutina
Publicado por: seba123neo en 27 Enero 2011, 03:25 AM
probaste pasarle Nothing ?

saludos.
Título: Re: Llamar una SubRutina
Publicado por: TheGhost(Z) en 27 Enero 2011, 14:11 PM
Hola, para los que le haga falta... Econtré dos métodos. ::) ::)

1.#
Dim myNode As TreeNode = trvIndice.SelectedNode
trvIndice.SelectedNode = Nothing
trvIndice.SelectedNode = myNode
myNode = Nothing


2.#
Call trvIndice_AfterSelect(Nothing, New System.Windows.Forms.TreeViewEventArgs(trvIndice.SelectedNode))
Título: Re: Llamar una SubRutina
Publicado por: raul338 en 27 Enero 2011, 14:32 PM
Generalmente para llamar entre eventos, ej en el evento click del boton (que tambien se evian un sender y un EventArgs) llamo al evento que quiero con esos mismos parametros (si son del mismo tipo). Sino cambio una propiedad que dispare ese evento.

Yo cambiaria ese Nothing por "sender" o "Me" de la segunda opción
Título: Re: Llamar una SubRutina
Publicado por: TheGhost(Z) en 28 Enero 2011, 15:29 PM
Hola, raul338

Me preguntaba lo mismo: he puesto los 4 sgtes.: Nothing, Me, Sender, TreeView1 (nombre del control)

y da el mismo resultado. supongo que habra alguna diferencia. pero como no sé las diferencias que hay entre ellas he optado por poner nothing.

Pero si tú o alguién sabe me vendría rebien... :D :D
Título: Re: Llamar una SubRutina
Publicado por: raul338 en 29 Enero 2011, 13:40 PM
Exacto el resultado es el mismo, pero "que funcione no quiere decir que esta bien"  ;-)

por lo general siempre se pone el sender del evento en el que estas o un this o Me :)