Foro de elhacker.net

Programación => .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:

Código:
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.

Código:
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
Código:
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.#
Código:
Dim myNode As TreeNode = trvIndice.SelectedNode
trvIndice.SelectedNode = Nothing
trvIndice.SelectedNode = myNode
myNode = Nothing

2.#
Código:
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.:
Código:
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 :)