Necesitamos dos formularios. Un MDI el cual lo dejamos sin ningun control (solo el formulario) y otro formulario (normal) en donde colocamos nuestros controles y procedimientos.
El el formulario MDI (EL CUAL HE LLAMADO BG) colocamos el siguente codigo.
En los eventos Load y Resize
Código:
En el resto del codigo colocamos:Private Sub bg_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ShowInTaskbar = False Aparecer() MostrarFormulario() End Sub Private Sub bg_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize fullsceen() End Sub
Código:
En el segundo formulario colocamos en el evento disposed el codigo''' <summary> ''' Propiedad que sera validad para verificar que formulario sera cargado ''' </summary> ''' <remarks></remarks> Dim _View As String Public Property View() As String Get Return _View End Get Set(ByVal value As String) _View = value End Set End Property ''' <summary> ''' Lee la informacion de la porpiedad view y valida que formulario sera cargado. ''' Este procedimiento se usa si el formulario de fondo sera usado para mas de un formulario. ''' </summary> ''' <remarks></remarks> Private Sub MostrarFormulario() Select Case View Case 1 frmProductos_Precios.ShowInTaskbar = False frmProductos_Precios.Show() End Select End Sub ''' <summary> ''' REDIMENCIONA EL FORMULARIO AL TAMANIO TOTAL DE LA PANTALLA Y POSTERIORMENTE LO COLOCA EN LA POSICION 0 X-Y ''' DE LA PANTALLA ''' </summary> ''' <remarks></remarks> Private Sub fullsceen() Me.Text = "" Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None Me.Size = SystemInformation.PrimaryMonitorSize Me.Left = 0 Me.Top = 0 End Sub ''' <summary> ''' PROCEDIMIENTO QUE LE DA UN EFECTO AL FORMULARIO DE APARICION ''' </summary> ''' <remarks></remarks> Private Sub Aparecer() Dim i As Double For i = 0 To 0.5 Step 0.07 Threading.Thread.Sleep(100) Me.Opacity = i Me.Visible = True Next i End Sub ''' <summary> ''' PERMITE CENTRAR UN CONTROL EN EL FORMULARIO, PUEDE SER UN PANEL O UN GROUP BOX ''' </summary> ''' <param name="ctrl"></param> ''' <remarks></remarks> Private Sub CentrarControl(ByVal ctrl As Control) ' Si el contenedor del control es Nothing, abandonamos el procedimiento If ctrl.Parent Is Nothing Then Return With ctrl .Top = (.Parent.ClientSize.Height - .Height) \ 2 .Left = (.Parent.ClientSize.Width - .Width) \ 2 End With End Sub
Código:
y en el evento load de este mismo formulariobg.Close()
Código:
esto nos servira para que al cerrar el formulario hijo se cierre el padre (el fondo transparente que enllava toda la pantalla.)Me.TopMost = True
NOTA IMPORTANTE:
Estos formularios no los podemos llamar usando la propiedad MDI CHILD pues la idea es que cubran la pantalla completa y el fondo enllave la pantalla hasta que el formulario hijo se cierre.
Consultas al [email protected]