En un ambiente MDI es sabido que los formulario hijos no podrán ser desplegados mediante el método ShowDialog() para que estos se comportan de forma modal, pero a veces es necesario que este formulario este en primer plano hasta que este completo para después si poder cerrarlo y capturar la información ingresada.
La solución a este problema se logra mediante el uso de una función del API de Windows
<System.Runtime.InteropServices.DllImport("user32.DLL")> _ Public Shared Function SetParent(ByVal hWndChild As Integer, ByVal hWndNewParent As Integer) As Integer End Function Private Sub btnshowmodal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnshowmodal.Click Dim frm As New Form3 frm.Show() SetParent(CInt(frm.Handle), CInt(Me.MdiParent.Handle)) End Sub
Como se vera en ele ejemplo se sigue utilizando el método Show() el cual se usa en un ambiente MDI, solo que ahora se realiza un paso adicional al utilizar la funcionalidad del Sistema Operativo para establecer las relaciones entre ventanas.
[VB.NET] |
Hola, por favor su ayuda. ¿Como sería en C#?.
ResponderEliminarhola
EliminarSe podria decir que el codigo es muy similar
SetParent
todo es cuestion de definir la api de windows
saludos