none
Capturar la propiedad text de controles de otro formulario RRS feed

  • Pregunta

  • Hola

    Estoy desarrollando mi aplicación en VB.NET 2012, tengo creado 3 combobox en el form1, el combo1 muestra la unidad raiz, el combo 2 muestra los directorios de la unidad y el combo 3 muestra los subdirectorios . para crear nueva carpeta(sub directorio), desde el form2 presiono el botón "Agregar" que tiene este codigo:

    Private Sub Agregar_Click(sender As Object, e As EventArgs) Handles Agregar.Click

    Dim frm as new form1

    txtruta.text = frm.combo1.text &"\"& frm.combo2.text

    Dim New_folder as string = txtruta.text & "\" & Carpeta.text

    Directory.CreateDirectory(New_folder)

    'al final quiero mostrar en el text "New Folder" del form1 la ruta del nuevo archivo

    frm.txt_new_folder.text = New_Folder

    End sub

    El problema es que no puedo capturar las propiedades text del como 1 y 2 del form1, tampoco puedo devolver el valor de un control del form2 a la propiedad text de un cuadro de texto del form1

    Alguien tiene un ejemplo de como capturar las propiedades text de los controles de otro formulario? 

    • Cambiado Enrique M. Montejo miércoles, 1 de octubre de 2014 15:16 Pregunta relacionada con Windows Forms.
    lunes, 29 de septiembre de 2014 15:41

Respuestas

  • buenas tardes, creo que ya entendi masomenos lo que quieres hacer... el problema consiste en que tu defines frm1 como un formulario NUEVO por lo tanto todos los campos estan vacios (a menos que tengan la propiedad text desde el comienzo). Para este caso en particular primero debes identificar desde el form2 al formulario (Activo) que se llame form1 y luego sacar sus valores... intenta de la siguiente manera.

     En el button_Click del form2:

     Dim formulario1 As New Form1
            For Each Form In Application.OpenForms 'Recorres los forms abiertos
                If (Form.Name = "Form1") Then 
                    formulario1 = Form 'Ya identificado el form1 ahora puedes extraer los valores
       End If

            Next
           Dim Newfolder as String = "C:\" & formulario1.ComboBox1.SelectedItem.Tostring() & "\"  'Continuas hasta terminar la linea


    Saludos, -- Lucas Petruzzella




    lunes, 29 de septiembre de 2014 21:03

Todas las respuestas

  • Buenas tardes, podrías generar métodos públicos en los formularios que reciban datos de otros. por ejemplo en el form1 creas el siguiente método

    public sub Recibir_Carpeta (byval carpeta as String)

     txt_new_folder.text = carpeta

    end Sub

    mientras que en el form2 llamas a ese metodo...

    Dim New_folder as string = txtruta.text & "\" & Carpeta.text
    dim frm1 as New Form1
    frm1.Recibir_Carpeta(New_folder)
    frm1.Show()

    Espero te sirva...


    Saludos, -- Lucas Petruzzella

    lunes, 29 de septiembre de 2014 16:16
  • Hola Lucas

    Gracias por el aporte. Lamentablemente no me esta dando resultado. algo estoy haciendo mal pero no logro identificar que es. Te escribo mi codigo para que me eches una mano!

    FORM 1

    FORM 2

    lunes, 29 de septiembre de 2014 19:06
  • buenas tardes, creo que ya entendi masomenos lo que quieres hacer... el problema consiste en que tu defines frm1 como un formulario NUEVO por lo tanto todos los campos estan vacios (a menos que tengan la propiedad text desde el comienzo). Para este caso en particular primero debes identificar desde el form2 al formulario (Activo) que se llame form1 y luego sacar sus valores... intenta de la siguiente manera.

     En el button_Click del form2:

     Dim formulario1 As New Form1
            For Each Form In Application.OpenForms 'Recorres los forms abiertos
                If (Form.Name = "Form1") Then 
                    formulario1 = Form 'Ya identificado el form1 ahora puedes extraer los valores
       End If

            Next
           Dim Newfolder as String = "C:\" & formulario1.ComboBox1.SelectedItem.Tostring() & "\"  'Continuas hasta terminar la linea


    Saludos, -- Lucas Petruzzella




    lunes, 29 de septiembre de 2014 21:03