urgente : pregunta comparando vb6.0 y vb.net 2005

28/06/2006 - 20:14 por Ricardo | Informe spam
hola amigo tengo un problema estoy pasando un sistem de vb6.0 a vb.net 2005 y
lo que sucede es que hay dos formulario uno que muestra la cabecera y el
detalle dentro de un datagrid, pero lo que sucede es que el detalle lo
ingresa por un segundo formulario y cuando lo agrega llama a un procedimiento
publico que declaro en el primero formulario para refrescar el datagrid y
muestre el item ingresado.. como puedo hacer eso en .net ya que declare
funciones puclicas pero como hago para llamarlo del segundo formulario y
refresque mi datagridview.

gracias anticipadamente por la ayuda...

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
28/06/2006 - 21:40 | Informe spam
"Ricardo" wrote in message
news:
hola amigo tengo un problema estoy pasando un sistem de vb6.0 a vb.net
2005 y
lo que sucede es que hay dos formulario uno que muestra la cabecera y el
detalle dentro de un datagrid, pero lo que sucede es que el detalle lo
ingresa por un segundo formulario y cuando lo agrega llama a un
procedimiento
publico que declaro en el primero formulario para refrescar el datagrid y
muestre el item ingresado.. como puedo hacer eso en .net ya que declare
funciones puclicas pero como hago para llamarlo del segundo formulario y
refresque mi datagridview.



Supongo que en algún sitio abrirás el primer formulario con un código
parecido a este:

Dim f1 as New Formulario1()
f1.Show()

Pues bien, desde el formulario 2 tienes que llamar a tu función de
refresco diciendo f1.Refrescar().
Seguramente tu confusión viene de que en VB6 podías hacer
Formulario1.Refrescar(). Eso se debe a que el VB6 hace automáticamente, sin
que tú lo escribas en tu código, un Dim Formulario1 As New Formulario1, con
lo que son iguales el nombre de la variable de instancia y el nombre de la
clase.

Ten presente que para poder llamar a la variable f1 desde el formulario
2, esta variable debe ser accesible desde dicho formulario. Se la puedes
pasar como argumento en el constructor, o a través de una propiedad pública
después de abrirlo, o bien declararla Public Shared en el sitio donde abras
el formulario 1.
Respuesta Responder a este mensaje
#2 Diego Cofré
28/06/2006 - 21:48 | Informe spam
Ricardo:
Tendrías que pasarle al segundo formulario una referencia al formulario
(clase) que lo llama. De esta manera podrías desde el segundo invocar un
método del primero.
Otra aproximación sería que el segundo formulario dispare un evento que sea
capturado desde el primero y actualice la grilla.

Saludos
Lic. Diego Cofré
Desarrollador
EWAVE GROUP S.A
www.e-wavegroup.com
Respuesta Responder a este mensaje
#3 Ricardo
30/06/2006 - 00:48 | Informe spam
hola amigo aun es un poco confuso para mi lo que me dice lo que sucede es que
como recien comienzo en vb .net,
bueno el primer formulario (f1) lo llamo desde un menu:

Dim objFrm As New frmProGui

objFrm.MdiParent = Me
objFrm.Show()

en el formulario f1 codifique:
Public Sub CargarLista(ByVal idcodusu As String)

Dim obj As New clsGuias
dgwlista.DataSource = obj.curtmpdetgui(idcodusu).Tables("DetalleGuia")
End Sub

el formulario f2 lo llamo desde la grilla que esta en f1 al presinar enter
de esta forma

If e.KeyCode = Keys.Return Then

Dim objItm As New frmProItmGuia
objItm.ShowDialog()
endif

y al presionar aceptar en el formulario f2 me gustario que se ejecute
CargarLista en f1 y refresque la grilla de f1 pero no cerrar f2 para que el
usuario siga ingresando sus datos pero vea todo lo que ha ingresado en l
grilla..

me prodrian decir como codificar esto???

gracias antcipadamente por la ayuda
Respuesta Responder a este mensaje
#4 Ricardo
30/06/2006 - 00:50 | Informe spam
hola amigo aun es un poco confuso para mi lo que me dice lo que sucede es
que como recien comienzo en vb .net,
bueno el primer formulario (f1) lo llamo desde un menu:

Dim objFrm As New frmProGui

objFrm.MdiParent = Me
objFrm.Show()

en el formulario f1 codifique:
Public Sub CargarLista(ByVal idcodusu As String)

Dim obj As New clsGuias
dgwlista.DataSource = obj.curtmpdetgui(idcodusu).Tables("DetalleGuia")
End Sub

el formulario f2 lo llamo desde la grilla que esta en f1 al presinar enter
de esta forma

If e.KeyCode = Keys.Return Then

Dim objItm As New frmProItmGuia
objItm.ShowDialog()
endif

y al presionar aceptar en el formulario f2 me gustario que se ejecute
CargarLista en f1 y refresque la grilla de f1 pero no cerrar f2 para que el
usuario siga ingresando sus datos pero vea todo lo que ha ingresado en l
grilla..

me prodrian decir como codificar esto???

gracias antcipadamente por la ayuda
Respuesta Responder a este mensaje
#5 Alberto Poblacion
30/06/2006 - 08:11 | Informe spam
"Ricardo" wrote in message
news:
bueno el primer formulario (f1) lo llamo desde un menu:

Dim objFrm As New frmProGui

objFrm.MdiParent = Me
objFrm.Show()

en el formulario f1 codifique:
Public Sub CargarLista(ByVal idcodusu As String)

Dim obj As New clsGuias
dgwlista.DataSource =
obj.curtmpdetgui(idcodusu).Tables("DetalleGuia")
End Sub



Vale, correcto, la rutina CargarLista es un método público, luego la
puedes llamar desde fuera.


el formulario f2 lo llamo desde la grilla que esta en f1 al presinar enter
de esta forma

If e.KeyCode = Keys.Return Then

Dim objItm As New frmProItmGuia
objItm.ShowDialog()
endif

y al presionar aceptar en el formulario f2 me gustario que se ejecute
CargarLista en f1 y refresque la grilla de f1 pero no cerrar f2 para que
el
usuario siga ingresando sus datos pero vea todo lo que ha ingresado en l
grilla..



Bien, en el f2 necesitas llamar a CargarLista que es un método de
instancia de f1. Por lo tanto, necesitas hacerle llegar la instancia de f1
al f2. Se la vas a pasar en el constructor. Fíjate en donde pones, en el f1,
"Dim objItm As New frmProItmGuia". Lo vas a cambiar como sigue:

Dim objItm As New frmProItmGuia(Me)

Observa que le hemos pasado el "Me". Como ese código está escrito dentro
del f1, "Me" es precisamente la instancia de f1, que es lo que le queremos
hacer llegar al f2.

Para recibir ese dato en el f2, habrá que modificar ligeramente el Sub
New para que reciba el parámetro y lo guarde. En f2, declara una variable
privada dentro del form asi:

Private ElOtroForm As frmProGui

Y luego busca dónde tienes el Sub New y cámbialo asi:

Sub New(remitente as frmProGui)
ElOtroForm = remitente
'El resto del Sub déjalo como estaba antes...


Finalmente, cuando quieras llamar al CargarLista de f1, llámalo asi:

ElOtroForm.CargarLista()
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida