Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/12/2009, 19:39
mariano_donati
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 10 meses
Puntos: 9
Respuesta: Panel en frente de TODOS los controles hijos

La solución es no sobreescribir la propiedad CreateParams y evitar que se pinte el background del panel. La clase quedaría de la siguiente forma:

Código C#:
Ver original
  1. public class PopupBackScreen : Panel
  2.     {
  3.         private SolidBrush backBrush;
  4.  
  5.         public PopupBackScreen()
  6.         {
  7.             backBrush = new SolidBrush(Color.FromArgb(128, 0, 0, 0));
  8.         }
  9.  
  10.         protected override void OnPaintBackground(PaintEventArgs e)
  11.         {
  12.             /** No llamar base.OnPaintBackground(e) para evitar que se pinte el fondo */
  13.         }
  14.  
  15.         protected override void OnPaint(PaintEventArgs e)
  16.         {
  17.             base.OnPaint(e);
  18.             e.Graphics.FillRectangle(backBrush, this.ClientRectangle);            
  19.         }
  20.  
  21.     }

Espero que le sirva a alguien.
Muchas gracias a todos los que se tomaron el tiempo de leer el post.

Saludos.
__________________
Add, never Remove