Estoy harto del tema de las transparencias en los winforms...
aver si me podeis ayudar, el problema es sencillo, la solución...no lo sé.
un label "transparente" encima de una barra de progreso:
(http://img16.imageshack.us/img16/6936/prtscrcapture2i.jpg)
¿Como puedo hacerlo transparente de verdad?
Gracias...
create tu propio control que herede del label, de esa forma podes setearle algunas propiedades que lo hacen transparente de verdad.
Public Class Label_Transparent
Inherits System.Windows.Forms.Label
Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H20
Return cp
End Get
End Property
Public Sub New()
Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True)
Me.SetStyle(ControlStyles.ResizeRedraw, True)
Me.SetStyle(ControlStyles.UserPaint, True)
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, False)
End Sub
Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
If MyBase.BackgroundImage IsNot Nothing Then
MyBase.OnPaintBackground(pevent)
End If
End Sub
Protected Overrides Sub OnForeColorChanged(ByVal e As System.EventArgs)
Me.Refresh()
End Sub
End Class
con ese codigo se crea un label y funciona para lo que queres.
MUCHÍSIMAS GRACIAS SEBA
EDITO: Lo he solucionado con un "invalidate"
eres un crack haciendo eso de crear controles transparentes. :xD
Pero ahora me ha surgido un problema con este nuevo label (con el label normal no tengo este problema)
Cuando ejecuto la app todo aparece bien, el label encima de la barra:
(http://img706.imageshack.us/img706/1589/prtscrcapture2u.jpg)
Pero cuando refresco (progessbarbar.refresh()) la barra, el label trsnaparente se pone detrás de la barra y no puedo verlo...
(http://img835.imageshack.us/img835/264/prtscrcapture3i.jpg)
¿Sabes como puedo arreglarlo?
Y otra pregunta, hay alguna forma sencilla de exportar tu label trsnaparente como un nuevo controll DLL para instalarlo en la IDE? Si es muy dificil o es bastante extenso de realizar no importa, no quiero marearte más xD.
Un saludo
Cita de: EleKtro H@cker en 28 Noviembre 2012, 22:29 PM
hay alguna forma sencilla de exportar tu label trsnaparente como un nuevo controll DLL para instalarlo en la IDE?
para hacer eso tenes que crear un proyecto de tipo "biblioteca de clases", y ahi entonces pones ese codigo en una clase y listo, al generar la solucion se va a generar una dll