alberto-moyano   30-10-2023, 02:46
#1
Hola gente, estoy frente al siguiente problema, tengo dos formularios (catalogo y coleccion) en el formulario catalogo tengo un boton que llama al formulario coleccion, este es el código

Código:
Public Sub btnMostrarColeccion_Click()

  ' Crear una instancia de Form_Coleccion
  Dim FormColeccion As Form_Coleccion

  ' Inicializar la instancia
  FormColeccion = New Form_Coleccion

  ' Mostrar el formulario
  FormColeccion.ShowModal

End

en el formulario colección hago tareas con las que el formulario no tiene inconvenientes y tengo en un gridview datos, selecciono una fila y pretendo que esa selección se vea reflejada en 2 textbox del formulario catalogo, este es el código que uso en el botón que cierra el formulario con la seleeción

Código:
Public FormCatalogo As Form_Catalogo
Private FilaSeleccionada As Integer

....

Public Sub btnSeleccion_Click()

  ' Verificar si hay una fila seleccionada.
  If FilaSeleccionada >= 0 Then
    Dim coleccionSeleccionada As String = GridColeccion[FilaSeleccionada, 1].Text
    Dim direccionSeleccionada As String = GridColeccion[FilaSeleccionada, 2].Text

    ' Accede al formulario original y establece los valores en los TextBox.
    If FormCatalogo Then
      FormCatalogo.txtColeccion.Text = coleccionSeleccionada
      FormCatalogo.txtDireccion.Text = direccionSeleccionada
    Endif

    ' Cierra el formulario actual.
    Me.Close()
  Else
    Message.Warning("Debe seleccionar una colección.")
  Endif

End

Al cerrarse el formulario colección, no obtengo error, pero tampoco se reflejan los datos en los textbox del formulario catalogo.

Entiendo que el error está en la instancia que estoy creando del formulario de origen, pero le doy vueltas y no veo el error.

Alguna sugerencia.

Gracias de antemano
alberto-moyano   30-10-2023, 04:04
#2
Ya encontré el error, no estaba declarando como publico los textbox que reciben los datos.

Sls
Shell   09-11-2023, 20:24
#3
alberto-moyano:

¿ Te gusta más usar un control público que una referencia al formulario ?. ( En este caso catalogo ).
Desde luego existen otras formas, como es ocultar el formulario en vez de cerrarlo.

[Imagen: CnTt5iG.png]

[Imagen: XsCl8FA.png]

En el ejemplo he usado una referencia al formulario.

FMain:

Código:
Property datosprincipal As String[] Use hdatosprincipal

Public Sub Button1_Click()

  Dim formulario As Form1

  hdatosprincipal = New String[2]

  formulario = New Form1
  formulario.formu = Me
  formulario.ShowModal()
  TextBox1.Text = hdatosprincipal[0]
  TextBox2.Text = hdatosprincipal[1]

End

Form1:
Código:
Property formu As Object Use hformu

Public Sub Form_Open()

  'Definir GridView

  With GridView1
    .Columns.Count = 2
    .Rows.Count = 10
    .Mode = Select.Single
  End With

  'Rellenar

  For i As Integer = 0 To GridView1.Columns.Count - 1
    For j As Integer = 0 To GridView1.Rows.Count - 1
      GridView1.Columns.Width = GridView1.W / 2 'Esto debería estar fuera del bucle
      GridView1[j, i].Alignment = Align.Center
      GridView1[j, i].Text = "Fila " & Str(j) & " , " & "Columna " & Str(i)
    Next
  Next

End

Public Sub Button1_Click()

  If GridView1.Row > -1 Then
    Me.formu.datosprincipal = [GridView1[GridView1.Row, 0].Text, GridView1[GridView1.Row, 1].Text]
    Me.Close
  Endif

End

Saludos
Archivos adjuntos
.gz
EntreFormularios-0.0.1.tar.gz (Tamaño: 12.28 KB Descargas: 0)
Última modificación: 09-11-2023, 20:26 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.