Ayuda con MiFormulario as Form2

Iniciado por TheGhost(Z), 5 Marzo 2010, 20:02 PM

0 Miembros y 1 Visitante están viendo este tema.

TheGhost(Z)

Hola, amigos

Veran tengo tres Formularios:


FormPrincipal
FormCliente
FormDocumentos


El FormCliente tiene TextBox como: TextNombres, TextApellidos, TextDocumento, etc. Y lo ejecuto desde FormPrincipal con el código siguiente:
Dim MiFormCliente As New ForCliente
With MiFormCliente
.Show
End With


Una vez cargado el nuevo Formulario, relleno los TextBox y cuando me sitúo en el TextDocumento, preciono Ctrl + Enter para cargar el FormDocumentos que contiene un ListBox con los documentos comunes como: DNI, Pasaporte, Licencia de conducir, etc.

Bueno, pues al dar DobleClik en el ListBox no se como pasar los datos del documento seleccionado porque el FormCliente lo he creado con el código que ya dije anteriormente. He intentado con:

With FormCliente
     .TextDocumento.Text = Listado.Text
     .TextDocumento.Tag = Listado.ItemData(Listado.ListIndex)
End With

y

With MiFormCliente
     .TextDocumento.Text = Listado.Text
     .TextDocumento.Tag = Listado.ItemData(Listado.ListIndex)
End With


y no me pasa los datos. Ayuda por favor alguna sugerencia o solución..



Snopk

Para mostrar un formulario que esta en tu proyecto lo haces simplemente con el evento Show.

Private Sub Form_Load()

frmSecundario.Show

End Sub


Y si quieres hacer referencia a algun control, función (publica), etcétera seria así:

MsgBox frmSecundario.txtNombre.Text


No entendí bien tu problema, espero haberte ayudado.  ;D

TheGhost(Z)

Eso lo tengo claro. Lo que digo que el el formulario lo cargo en tiempo de ejecución:

Dim MiFormCliente As New ForCliente
With MiFormCliente
.Show
End With



Seria lógico hacer un:

MiFormCliente.TextDocumento.Text = "DNI"

Pero si lo hago me sale error.... por que ese Formulario lo he cargado en tiempo de ejecución.

Práticamente mi pregunta sería: ¿como hacer referencia a control de un formulario que ha sido creado en tiempo de ejecución?

BlackZeroX


Agrega un Form
    Con un TextBox con nombre Text1
Agrega un modulo y pega esto

Establece en propiedades del proyecto el proceso inicial Sub Main

Código (vb) [Seleccionar]


Public MatrizDeForms() As Form
Sub main()
    ReDim MatrizDeForms(10)
    For Index = LBound(MatrizDeForms) To UBound(MatrizDeForms)
        Set MatrizDeForms(Index) = New Form1
        With MatrizDeForms(Index)
            .Text1.Text = "Cagada Del FormNo.: " & Index
            .Show
        End With
    Next
End Sub



Dulce Infierno Lunar!¡.
The Dark Shadow is my passion.

TheGhost(Z)


TheGhost(Z)

Hola, lo que intento es crear una matriz vacía, Fomularios () as Form y segun ande ejecuntando formularios ire agregando a la matriz, pero si se cierra un formulario la posicion de la matriz quedaría vacía. y asi aría un for para buscar posiciones vacías y cuando encuentre uno metería el nuevo formulario en esa posicion vacía y si no encuentro pues redimensionno + 1 y meto ahi el nuevo formulario.

mi pregunta es como hago para saber si una pocicion determinada esta vacía porque hago con:

IF Formularios(0) = VBNull then
endif

no me sale nada...

cobein

Te respondi esto hace unos cuantos post atras...

Pone ese code en el form que tiene la lista (en este caso list1, tu ejemplo es FormDocumentos) y automagicamente te va a agregar el item seleccionado al form que lo llamo en un textbox llamado text1

Private Sub List1_Click()
    GetCaller.Text1 = List1
End Sub

Private Function GetCaller() As Object
    Dim objForm As Object
   
    For Each objForm In Forms
        If objForm Is Me Then Exit For
        Set GetCaller = objForm
    Next
End Function

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

TheGhost(Z)

Hola Cobein

Sabes, no entiendo este
If objForm Is Me Then Exit For

el is Me formularioDocumentos, al que tienen la lista, no?.  lo que yo quiero es pasar el dato al: FormClientes(i).TextDocumentos.Text=Lista.text

sinksss

El "Me" hace referencia a el form en el que esta escrito.
Saludos

cobein

Ahi te deje un ejemplo, no es el mismo source que postie aca, es mas simple y versatil.

http://www.2shared.com/file/11965677/711ea2d3/Sample.html


Podes cambiar  esto en el FormCliente asi no tenes mas de una instancia.

Private Sub Command1_Click()
    If Not Called Is Nothing Then
        If Called.Visible Then Exit Sub
        Called.Show: Exit Sub
    End If
    Dim f As New FormDocumentos
    f.Show
End Sub
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.