Foros del Web » Programación para mayores de 30 ;) » .NET »

Formulario Transparente sin Afectar Controles

Estas en el tema de Formulario Transparente sin Afectar Controles en el foro de .NET en Foros del Web. Bueno en ocacion a que he buscado muchas veces en google sobre este tema y nunca he encontrado solucion, me dedique a trabajar para encontrar ...
  #1 (permalink)  
Antiguo 12/06/2012, 16:15
 
Fecha de Ingreso: enero-2009
Mensajes: 17
Antigüedad: 15 años, 3 meses
Puntos: 0
Formulario Transparente sin Afectar Controles

Bueno en ocacion a que he buscado muchas veces en google sobre este tema y nunca he encontrado solucion, me dedique a trabajar para encontrar una solucion y llegue a la conclusion mas simple del mundo:

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:
    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
En el resto del codigo colocamos:
Código:
    ''' <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
En el segundo formulario colocamos en el evento disposed el codigo

Código:
 bg.Close()
y en el evento load de este mismo formulario

Código:
Me.TopMost = True
esto nos servira para que al cerrar el formulario hijo se cierre el padre (el fondo transparente que enllava toda la pantalla.)

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]
  #2 (permalink)  
Antiguo 13/06/2012, 08:20
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Formulario Transparente sin Afectar Controles

Hola Diclonius, esto es una de varias solución. Gracias por el aporte, que de seguro servirá a alguien en el futuro!.Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 13/06/2012, 11:13
 
Fecha de Ingreso: enero-2009
Mensajes: 17
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario Transparente sin Afectar Controles

Claro que hay otros metodos mas complicados y aun peor dificiles de encontrar en google pero igual coloco esto para quellos que han buscado como yo durante mucho y no han encontrado como. saludos.

Etiquetas: vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:06.