Actualizar Formulario desde otro formulario

23/02/2006 - 20:40 por Mocoyn | Informe spam
Hola, uso visual basic .NET 2003, y quiero actualizar una barra de estado y 2
datagrids de un formulario (1) ya abierto, desde otro formulario (2). He
probado creando instancias de esta manera, con este codigo:
Private Shared mDefInstance As MDIPrincipal
Public Shared Property DefInstance() As MDIPrincipal
Get
If mDefInstance Is Nothing Then
mDefInstance = New MDIPrincipal
End If
Return mDefInstance
End Get
Set(ByVal Value As MDIPrincipal)
mDefInstance = Value
End Set
End Property

Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
MyBase.OnClosed(e)
mDefInstance = Nothing
End Sub


y cuando accedo desde el formulario (2) al formulario (1), consigo verlo
poniendo, formulario.definstance.barra_estado pero no consigo que se
actualice.
Para el caso de los datagrids, uso unas funciones que los cargan. Espero su
ayuda, grcias.

Preguntas similare

Leer las respuestas

#11 Jesús López
25/02/2006 - 13:11 | Informe spam
Si no te funciona es porque no has seguido el patrón que te he mostrado.

¿Donde está el resto del código?

Yo he escrito bastante más código, que no veo correspondencia en el tuyo.

(1) Tiene que haber un lugar donde establezcas mDefInstance, que puede ser
perfectamente en el evento Load del formulario Form_Actualiz1

Saludos:

Jesús López
MVP


"Mocoyn" escribió en el mensaje
news:
He visto tu solucion, y hago lo que me dices y no me funciona, te escribo,
lo
que hago: (No me funciona al llamar a la funcion Cargar_Datagrid_TablasBD)

En el formulario 1
Public Class Form_Actualiz1
Private Shared mDefInstance As Form_Actualiz1
Public Shared ReadOnly Property Instancia() As Form_Actualiz1
Get
Return mDefInstance
End Get
End Property

Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
MyBase.OnClosed(e)
mDefInstance = Nothing
End Sub

Public Sub Cargar_Datagrid_TablasBD()
On Error GoTo fallo
Dim ds As DataSet = New DataSet

var.bd.Ejecutar3("SELECT TABLA,ACTUALIZADA FROM TMPTABLASBD", ds,
"TmpTablasBD")
DataGrid1.SetDataBinding(ds, "TmpTablasBD")
ds.Dispose()

fallo:
If (Err.Number <> 0 And Err.Number <> 20) Then
MsgBox("Se ha producido un error " & Err.Number.ToString & " "
&
Err.Description, , )
End If
End Sub


Formulario2
Public sub (Al salir)

GestionExcel.Form_Actualiz1.Instancia.Cargar_Datagrid_TablasBD()

Respuesta Responder a este mensaje
#12 Mocoyn
26/02/2006 - 21:17 | Informe spam
Si, funciona, perdona, me faltaba lo que me has dicho, el poner en el load
mdefinstance=me

muchas gracias

"Jesús López" escribió:

Si no te funciona es porque no has seguido el patrón que te he mostrado.

¿Donde está el resto del código?

Yo he escrito bastante más código, que no veo correspondencia en el tuyo.

(1) Tiene que haber un lugar donde establezcas mDefInstance, que puede ser
perfectamente en el evento Load del formulario Form_Actualiz1

Saludos:

Jesús López
MVP


"Mocoyn" escribió en el mensaje
news:
> He visto tu solucion, y hago lo que me dices y no me funciona, te escribo,
> lo
> que hago: (No me funciona al llamar a la funcion Cargar_Datagrid_TablasBD)
>
> En el formulario 1
> Public Class Form_Actualiz1
> Private Shared mDefInstance As Form_Actualiz1
> Public Shared ReadOnly Property Instancia() As Form_Actualiz1
> Get
> Return mDefInstance
> End Get
> End Property
>
> Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
> MyBase.OnClosed(e)
> mDefInstance = Nothing
> End Sub
>
> Public Sub Cargar_Datagrid_TablasBD()
> On Error GoTo fallo
> Dim ds As DataSet = New DataSet
>
> var.bd.Ejecutar3("SELECT TABLA,ACTUALIZADA FROM TMPTABLASBD", ds,
> "TmpTablasBD")
> DataGrid1.SetDataBinding(ds, "TmpTablasBD")
> ds.Dispose()
>
> fallo:
> If (Err.Number <> 0 And Err.Number <> 20) Then
> MsgBox("Se ha producido un error " & Err.Number.ToString & " "
> &
> Err.Description, , )
> End If
> End Sub
>
>
> Formulario2
> Public sub (Al salir)
>
> GestionExcel.Form_Actualiz1.Instancia.Cargar_Datagrid_TablasBD()
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida