none
Invocar evento de threeview de un usercontrol RRS feed

  • Pregunta

  • Buenas,

    Bueno he estado buscando mucho pero no he encontrado apenas nada que se le pareciera.

    Me construido con ayuda de Internet un user control que me proporciona una navegación por los diferentes directorios mediante el threeview. 

    En el siguiente evento captura la ruta total del fichero seleccionado:

     Private Sub TreeView1_NodeMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseDoubleClick
            ' only proceed if the node represents a file
            If e.Node.ImageKey = "folder" Then Exit Sub
            If e.Node.Tag = "" Then Exit Sub
            ' try to open the file
            Try
                Process.Start(e.Node.Tag) ' CAPTURO LA RUTA TOTAL
                'Proces
            Catch ex As Exception
                MessageBox.Show("Error opening file: " & ex.Message)
            End Try
        End Sub

    El problema es que me gustaría devolver este valor al formulario donde deje anidar el user control.

    Gracias

    jueves, 10 de mayo de 2012 14:11

Respuestas

Todas las respuestas

  • Hola:

    Una opción sería crear un evento para tu UserControl:

    Public Event NombreDelEvento_PorEjemplo_ProcesoLanzado(RutaTotal As String)

    Y lanzar el evento cuando quieras, en tu caso:

    ...
    Try
       Process.Start(e.Node.Tag)
       RaiseEvent NombreDelEvento_PorEjemplo_ProcesoLanzado(e.Node.Tag)
    Catch
    ...

    Por último, en el formulario donde pongas tu UserControl, tendras un el nuev evento, que se ejecutará cada vez que hagas dobleclick sobre el treeview.

    Espero que te sirva.

    Saludos

    jueves, 10 de mayo de 2012 14:44
  • Como invoco el evento del UserControl desde el form? y como recupero lo que paso RutaTotal?

    jueves, 10 de mayo de 2012 15:30
  • hola

    como es que quieres acceder a esta informacion ? con una simple propiedad o enviandola en un evento

    [WinForms] - Mover UserControl

    veras en el ejemplo como generar un evento desde un control que crees, debes usar la misma tecnica que alli se plantea

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 10 de mayo de 2012 15:51
  • Hola:

    Has de seleccionar el evento como seleccionas cualquier evento de cualquier control en un formulario:

    En la ventana de codigo del formulario, seleccionas tu UserControl (lista desplegable de la izq.), y en la lista de eventos (lista de la derecha) tendras el que has creado, lo seleccionas como cualquier evento 'normal' (load, click, mouseclick, etc), te creará el codigo necesario:

    Public Sub NombreDelEvento_PorEjemplo_ProcesoLanzado(RutaTotal As String)

    MsgBox "Has seleccionado la ruta: " & RutaTotal

    End Sub

    Saludos


    jueves, 10 de mayo de 2012 16:13