CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Pregunta Sobre Formas
(1/1)
Miguelencho:
Como estan estimados amigos de solocodigo, tengo una pregunta sobre formas y mdi, tengo una aplicacion donde utilizo un formulario mdi con varias formas child, y un menu principal.
Ahora, el problema es que los formularios se repiten cada vez que presiono un item en el menu, en el menu instancio cada item con la forma que debe abrir, como puedo hacer para controlar que solo se abra la forma una sola vez o si la forma esta abierta pero oculta detras de otra de las formas child abierta, la muestre y actualice los datos que estan en ella, ya que estoy utilizando una base de datos access para mostrar los datos.
Se me ocurre crear un objeto de cada forma en el evento load de cada forma, se puede hacer de otra manera?
Aqui esta el ejm. de uno de los items del menú...
--- Citar ---Private Sub MenuItem9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem9.Click
Dim obj As New vertodos()
obj.MdiParent = Me
obj.Show()
End Sub
--- Fin de la cita ---
Por ahora es todo amigos, tengo mas preguntas pero quiero resolver esta primero y gracias de antemano.......
senzao18:
Busque el link donde encontre como hacerlo y no lo encontré pero te mando mi codigo....
Si quieres explication hay me dices....
Pero se explica solo jajajja
--- Código: Text --- Dim nHwnI As System.IntPtr nHwnI = FindWindow(vbNullString, "Módulo de Auditoría") If Val(nHwnI.ToString) <> 0 Then ShowWindow(nHwnI, 9) SetForegroundWindow(nHwnI) Else Dim oModuloAuditoria As New MainFormAuditoria oModuloAuditoria.ShowDialog() End If
--- Código: Text --- #Region "APIs" <System.Runtime.InteropServices.DllImport("user32.dll")> _ Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As System.IntPtr End Function <System.Runtime.InteropServices.DllImport("user32.dll")> _ Private Shared Function ShowWindow(ByVal hWnd As System.IntPtr, ByVal nCmdShow As Integer) As Integer End Function <System.Runtime.InteropServices.DllImport("user32.dll")> _ Public Shared Function SetForegroundWindow(ByVal hWnd As System.IntPtr) As Boolean End Function #End Region
Miguelencho:
Bueno amigo el codigo lo entido, si estoy utilizando mdi no es problema cierto, solo tendría que establecer el mdiparent cierto, y si me puedes explicar un poquito la segunda seccion de codigo seria de utilidad, gracias.....!!!!!! :D
senzao18:
No importa que sea MDI.
Y la segunda seccion de codigo solo hacemos uso de unas API de windows que nos proveen de funciones para buscar ventanas :D.
Que hacen por dentro???? Solo dios y su programador lo sabe, yo no, solo se que me ayudan a cumplir con el objetivo :D.
Miguelencho:
Gracias amigo forero....
:lol:
Navegación
Ir a la versión completa