conservar listbox de un formulario a otro

10/04/2005 - 01:32 por Sonia | Informe spam
hola! tengo un formulario donde elegir opciones de una serie de combobox,
relleno varios listbox que pertenen a la misma tabla deuna base de datos.
hasta ahí todo correcto, pero una vez salen estos datos, pulso un boton y y
accedo a otro formulario donde , aparte de varios datagrid que tienen q
salir rellenados , quiero conservar algunos de los datos de los texbox
rellenados en el formulario anterior. es esto posible??
he intentado poner en el fomrulario inicial:
Private Sub form_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Form.Click

Dim frm As New ColeFormConsultas

'mostrar el formulario

frm.ShowDialog()

frm.Show(texbox1,texbox2,textbox3..)

End Sub

y en el segundo formulario:
Public OverLoad Show(byVal texbox1As string, Byval texbox2 As string...)

pero no hay manera. alguna opcion mas???

gracias!

Preguntas similare

Leer las respuestas

#1 floyd303
10/04/2005 - 13:48 | Informe spam
Hola!

Yo lo que haria seria pasar lo datos en el constructor

En tu formulario veras que hay un constructor, pos pasa los parametros
a traves del constructor y los guardas en propiedades de la clase:

Protected m_textbox1 as String
Protected m_textbox2 as String


Public Sub New (textbox1 as String, textbox2 as String)
' Aqui hay mas codigo
' ...
'
' Guarda los valores pasados:
m_textbox1 = textbox1
m_textbox2 = textbox2

End Sub

' Ya los puedes utilizar en el Show:
Public Overrides Sub Show(...)
' Asignando los valores a un textbox, por ejemplo:
TextBox1.Text = m_textbox1
End Sub

Asi cuando, en el primer formulario, llames al segundo, lo tienes que
hacer asi:

Dim frm As New ColeFormConsultas (TextBox1.Text, TextBox2.Text)

'mostrar el formulario
frm.ShowDialog()


Bueno, espero que te quede claro!
Saludos!

Roberto M. Oliva



"Sonia" wrote in message
news:...
hola! tengo un formulario donde elegir opciones de una serie de combobox,
relleno varios listbox que pertenen a la misma tabla deuna base de datos.
hasta ahí todo correcto, pero una vez salen estos datos, pulso un boton y y
accedo a otro formulario donde , aparte de varios datagrid que tienen q
salir rellenados , quiero conservar algunos de los datos de los texbox
rellenados en el formulario anterior. es esto posible??
he intentado poner en el fomrulario inicial:
Private Sub form_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Form.Click

Dim frm As New ColeFormConsultas

'mostrar el formulario

frm.ShowDialog()

frm.Show(texbox1,texbox2,textbox3..)

End Sub

y en el segundo formulario:
Public OverLoad Show(byVal texbox1As string, Byval texbox2 As string...)

pero no hay manera. alguna opcion mas???

gracias!
Respuesta Responder a este mensaje
#2 Sonia
10/04/2005 - 17:43 | Informe spam
hola!
gracias x responder!
hize lo q me dijiste(o lo q entendí) pero me dan varios errores.
en el 1er formulario puse esto y me dice q hay demasiados argumentos en
'public sub new'

'conservar los textbox para el fomulario siguiente

Protected m_Clave As String

Protected m_Nombre As String

Protected m_direccion As String

Protected m_localidad As String

.

Public Sub New(ByVal Clave As String, ByVal Nombre As String, ByVal
direccion As String, ByVal localidad As String, ByVal codpos As String,
ByVal provi As String, ByVal tno As String, ByVal tfax As String)

m_Clave = Clave

m_Nombre = Nombre

m_direccion = direccion

m_localidad = localidad

.

End Sub

Private Sub form_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles form.Click

Dim frm As New ColeFormConsultas(Clave.Text, Nombre.Text, direccion.Text,
localidad.Text, ..)

'mostrar el formulario

frm.ShowDialog()

End Sub



y en el 2º puse esto y me dice q 'show' no puede ser 'overrides' y que
'text' no es string. tengo q declarar tb todo lo del 1er formulario ene ste
2º?

Public Overrides Sub Show(ByVal Clave As String, ByVal Nombre As String,
ByVal direccion As String, ByVal localidad As String,.)
Clave.Text = m_Clave

Nombre.Text = m_Nombre

direccion.Text = m_direccion

localidad.Text = m_localidad

..

End Sub





"Roberto M. Oliva" escribió en el mensaje
news:
Hola!

Yo lo que haria seria pasar lo datos en el constructor

En tu formulario veras que hay un constructor, pos pasa los parametros
a traves del constructor y los guardas en propiedades de la clase:

Protected m_textbox1 as String
Protected m_textbox2 as String


Public Sub New (textbox1 as String, textbox2 as String)
' Aqui hay mas codigo
' ...
'
' Guarda los valores pasados:
m_textbox1 = textbox1
m_textbox2 = textbox2

End Sub

' Ya los puedes utilizar en el Show:
Public Overrides Sub Show(...)
' Asignando los valores a un textbox, por ejemplo:
TextBox1.Text = m_textbox1
End Sub

Asi cuando, en el primer formulario, llames al segundo, lo tienes que
hacer asi:

Dim frm As New ColeFormConsultas (TextBox1.Text, TextBox2.Text)

'mostrar el formulario
frm.ShowDialog()


Bueno, espero que te quede claro!
Saludos!

Roberto M. Oliva



"Sonia" wrote in message
news:...
> hola! tengo un formulario donde elegir opciones de una serie de


combobox,
> relleno varios listbox que pertenen a la misma tabla deuna base de


datos.
> hasta ahí todo correcto, pero una vez salen estos datos, pulso un boton


y y
> accedo a otro formulario donde , aparte de varios datagrid que tienen q
> salir rellenados , quiero conservar algunos de los datos de los texbox
> rellenados en el formulario anterior. es esto posible??
> he intentado poner en el fomrulario inicial:
> Private Sub form_Click_1(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Form.Click
>
> Dim frm As New ColeFormConsultas
>
> 'mostrar el formulario
>
> frm.ShowDialog()
>
> frm.Show(texbox1,texbox2,textbox3..)
>
> End Sub
>
> y en el segundo formulario:
> Public OverLoad Show(byVal texbox1As string, Byval texbox2 As string...)
>
> pero no hay manera. alguna opcion mas???
>
> gracias!
Respuesta Responder a este mensaje
#3 floyd303
11/04/2005 - 22:50 | Informe spam
Hola!

Vamos a ver, lo llevas bien. Lo que pasa es que quiza me precipite al
ponerte la funcion para inicializar los valores del segundo formulario
(ColeFormConsultas)

Vamos a resumir:
Formulario1: Lanza el segundo formulario (Formulario2). Lo crea y en
el New le pasa los parametros que quiere que el Formulario2 utilice.
Luego hace un ShowDialog para mostrarlo.

Formulario2: Recibe en el New los parametros y los guarda en variables
locales a la clase del formulario. Luego en una funcion de
inicializacion (hay varias que puedes utilizar) actualizas los
controles de este segundo formulario con los datos almacenados en la
variables. La funcion de inicializacion podria ser:

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
Nombre.Text = m_Nombre

End Sub

Bien. Sobre el numero de parametros en el constructor ahora mismo
desconozco el limite, pero he reproducido tu codigo y no le veo el
problema.
De todas formas otro diseño posible de tu codigo seria crearte una
clase que defina/contenga los datos que quieras pasar:

Public Class CDatos
Protected m_Clave As String
Protected m_Nombre As String
Protected m_direccion As String
Protected m_localidad As String

' Accessors
Public Property Clave() As String
Get
Return m_Clave
End Get
Set(ByVal Value As String)
m_Clave = Value
End Set
End Property
' Habria que definir el resto de Accessors
End Class

' Asi el Formulario2 contendria solo una variable:

Protected m_objDatos as CDatos

' Y el New solo recibiria un parametro:

Public Sub New(objDatos as CDatos)
m_objDatos = objDatos
End Sub

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
Nombre.Text = m_objDatos.Nombre ' Se supone que se ha definido el
Accesor Nombre
...
End Sub

La llamada del Formulario1 seria:

Private Sub form_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles form.Click

Dim objDatos as CDatos
objDatos.Nombre = Nombre.Text
...

Dim frm As New ColeFormConsultas(objDatos)
'mostrar el formulario
frm.ShowDialog()
End Sub

Bufff... bueno, por ahora ya esta bien. Esta segunda manera es la mas
correcta, porque ademas se supone que habra operaciones inherentes a
esos datos y son independientes de otros elementos de la aplicacion.
Ese contenido de datos (que pueden ser datos de una persona) se
comportan como un ente con su propia autonomia y no como datos
sueltos. Todos los datos juntos tienen su propio comportamiento.
Bueno, como me enrollo, esto no es mas que la teoria de la
programacion orientada a objetos.

Espero que te ayude!
Saludos!

Roberto

"Sonia" wrote in message news:...
hola!
gracias x responder!
hize lo q me dijiste(o lo q entendí) pero me dan varios errores.
en el 1er formulario puse esto y me dice q hay demasiados argumentos en
'public sub new'

'conservar los textbox para el fomulario siguiente

Protected m_Clave As String

Protected m_Nombre As String

Protected m_direccion As String

Protected m_localidad As String

.

Public Sub New(ByVal Clave As String, ByVal Nombre As String, ByVal
direccion As String, ByVal localidad As String, ByVal codpos As String,
ByVal provi As String, ByVal tno As String, ByVal tfax As String)

m_Clave = Clave

m_Nombre = Nombre

m_direccion = direccion

m_localidad = localidad

.

End Sub

Private Sub form_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles form.Click

Dim frm As New ColeFormConsultas(Clave.Text, Nombre.Text, direccion.Text,
localidad.Text, ..)

'mostrar el formulario

frm.ShowDialog()

End Sub



y en el 2º puse esto y me dice q 'show' no puede ser 'overrides' y que
'text' no es string. tengo q declarar tb todo lo del 1er formulario ene ste
2º?

Public Overrides Sub Show(ByVal Clave As String, ByVal Nombre As String,
ByVal direccion As String, ByVal localidad As String,.)
Clave.Text = m_Clave

Nombre.Text = m_Nombre

direccion.Text = m_direccion

localidad.Text = m_localidad

..

End Sub





"Roberto M. Oliva" escribió en el mensaje
news:
> Hola!
>
> Yo lo que haria seria pasar lo datos en el constructor
>
> En tu formulario veras que hay un constructor, pos pasa los parametros
> a traves del constructor y los guardas en propiedades de la clase:
>
> Protected m_textbox1 as String
> Protected m_textbox2 as String
>
>
> Public Sub New (textbox1 as String, textbox2 as String)
> ' Aqui hay mas codigo
> ' ...
> '
> ' Guarda los valores pasados:
> m_textbox1 = textbox1
> m_textbox2 = textbox2
>
> End Sub
>
> ' Ya los puedes utilizar en el Show:
> Public Overrides Sub Show(...)
> ' Asignando los valores a un textbox, por ejemplo:
> TextBox1.Text = m_textbox1
> End Sub
>
> Asi cuando, en el primer formulario, llames al segundo, lo tienes que
> hacer asi:
>
> Dim frm As New ColeFormConsultas (TextBox1.Text, TextBox2.Text)
>
> 'mostrar el formulario
> frm.ShowDialog()
>
>
> Bueno, espero que te quede claro!
> Saludos!
>
> Roberto M. Oliva
>
>
>
> "Sonia" wrote in message
> news:...
> > hola! tengo un formulario donde elegir opciones de una serie de
combobox,
> > relleno varios listbox que pertenen a la misma tabla deuna base de
datos.
> > hasta ahí todo correcto, pero una vez salen estos datos, pulso un boton
y y
> > accedo a otro formulario donde , aparte de varios datagrid que tienen q
> > salir rellenados , quiero conservar algunos de los datos de los texbox
> > rellenados en el formulario anterior. es esto posible??
> > he intentado poner en el fomrulario inicial:
> > Private Sub form_Click_1(ByVal sender As System.Object, ByVal e As
> > System.EventArgs) Handles Form.Click
> >
> > Dim frm As New ColeFormConsultas
> >
> > 'mostrar el formulario
> >
> > frm.ShowDialog()
> >
> > frm.Show(texbox1,texbox2,textbox3..)
> >
> > End Sub
> >
> > y en el segundo formulario:
> > Public OverLoad Show(byVal texbox1As string, Byval texbox2 As string...)
> >
> > pero no hay manera. alguna opcion mas???
> >
> > gracias!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida