<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>solo VB.NET - Visual Basic .Net &#187; Transparencia</title>
	<atom:link href="http://www.solovb.net/index.php/tag/transparencia/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.solovb.net</link>
	<description>Visual Basic.NET, VB.NET, Programación, Tutoriales, Ejemplos</description>
	<lastBuildDate>Mon, 02 Jan 2012 14:30:00 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Formulario Transparente (Opacity)</title>
		<link>http://www.solovb.net/index.php/2009/03/06/formulario-transparente-opacity/</link>
		<comments>http://www.solovb.net/index.php/2009/03/06/formulario-transparente-opacity/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 12:50:23 +0000</pubDate>
		<dc:creator>Eliseo</dc:creator>
				<category><![CDATA[Ejemplos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Opacity]]></category>
		<category><![CDATA[Timer]]></category>
		<category><![CDATA[Transparencia]]></category>
		<category><![CDATA[WinForms]]></category>

		<guid isPermaLink="false">http://www.solovb.net/?p=293</guid>
		<description><![CDATA[En esta oportunidad quiero mostrarles un pequeño ejemplo que me gustó mucho cuando lo hice por primera vez. No es algo que usemos todos los días pero estoy seguro que les gustará y ya encontrarán donde hacerlo. Particularmente me gusta usarlo cuando muestro el cuadro "Acerca de... " en algunas de mis aplicaciones...]]></description>
				<content:encoded><![CDATA[<p>En esta oportunidad quiero mostrarles un pequeño ejemplo  en <a href="http://www.solovb.net">visual basic .net</a> que me gustó mucho cuando lo hice por primera vez. No es algo que usemos todos los días pero estoy seguro que les gustará y ya encontrarán donde hacerlo. Particularmente me gusta usarlo cuando muestro el cuadro &#8220;Acerca de&#8230; &#8221; en algunas de mis aplicaciones&#8230;</p>
<p>Se trata de la aparición gradual de un formulario, comienza transparente hasta que se ve al 100%. Para realizarlo necesitamos utilizar un control timer y la propiedad Opacity del formulario. </p>
<p>En el ejemplo lo que haremos será crear dos formularios (Form1 y Form2), el Form1 con un botón y la acción de este botón es llamar al segundo formulario. El segundo formulario irá apareciendo gradualmente y hará lo mismo cuando lo cerremos. Debería verse como en la imagen siguiente:</p>
<p><img alt="" src="/images/FormularioTransparente001.jpg" class="alignnone" width="538" height="458" /></p>
<p>Bueno, manos a la obra, jaja.</p>
<p>Primero el evento click del botón para que cargué el segundo formulario:</p>
<pre class="brush: vb; title: ;">
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim vForm2 As New Form2
    vForm2.ShowDialog()
End Sub
</pre>
<p>En el segundo formulario insertaremos dos componentes Timer&#8217;s (Timer1 y Timer2). Luego copiamos el siguiente código:</p>
<pre class="brush: vb; title: ;">
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Opacity = 0
    Timer1.Interval = 25
    Timer1.Enabled = True
End Sub

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    Timer2.Interval = 25
    Timer2.Enabled = True
    If Me.Opacity &gt; 0 Then
        e.Cancel = True
    End If
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If Me.Opacity = 1 Then
        Timer1.Enabled = False
    Else
        Me.Opacity = Me.Opacity + 0.02
        Me.Refresh()
    End If
End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    If Me.Opacity = 0 Then
        Timer2.Enabled = False
        Me.Close()
    Else
        Me.Opacity = Me.Opacity - 0.02
        Me.Refresh()
    End If
End Sub
</pre>
<p>Voy a explicar en breves palabras que es lo que hace:</p>
<p>Los formularios windows tienen una propiedad llamada <strong>Opacity</strong> que almacena un valor que va de 0 hasta 1. Este valor indica el porcentaje de opacidad del formulario, siendo 1 el 100% opaco y 0 0% opaco, lo que sería lo mismo que decir 100% transparente. Por eso con un valor 0.5 tendriamos un formulario 50% opaco o 50% Transparente (como más te guste).</p>
<p>Lo que hace un control Timer es ejecutar el código del evento Tick miestras el Timer tenga la propiedad enable en True y cada un intervalo determinado por la propiedad Interval.<br />
Entonces tenemos el Timer1 para cuando se abre el formulario (por eso lo acrivo &#8220;Timer1.Enable = True&#8221; en el evento Load y Timer2 para cuando se cierra (Activado en el evento Closing del Formulario).</p>
<p>Bueno, no quiero abundar en explicaciones porque el código es breve y creo que no hay mucho más que aclarar. </p>
<p>Si te gustó este ejemplo deja un comentario. Me gustaría saber cuales son las preferencias de mis visitantes. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.solovb.net/index.php/2009/03/06/formulario-transparente-opacity/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>
