jueves, marzo 29, 2012

Establecer un fondo en tiempo de diseño a un formulario Windows en C#

para este ejemplo debemos tener dos formularios, uno se usará como plantilla en donde manipularemos el evento Paint y el otro heredará el diseño del formulario plantilla:

Pero en este ejemplo el efecto visual solo podrá ser apreciado en tiempo de diseño, es decir que cuando ejecutemos la aplicación solo mostrara un formulario normal.

En el evento Paint del del formulario plantilla colocamos el siguiente código:

   private void Form2_Paint(object sender, PaintEventArgs e)
        {
            if (this.DesignMode)
            {
                SolidBrush drawBrush = new SolidBrush(Color.LightSteelBlue);
                Point p = new Point(this.ClientRectangle.Width - 170, this.ClientRectangle.Height - 25);
                
                Pen pen = new Pen(drawBrush,1);
                Size rec = this.Size;
                rec.Width = rec.Width - 28;
                rec.Height = rec.Height - 50;
                Rectangle r = new Rectangle(new Point(5, 5), rec);
                e.Graphics.DrawRectangle(pen, r);

                e.Graphics.DrawString("Milton Baltazar Valenzuela", new Font("Arial", 10), drawBrush, p);
            }
        }


Y en el primer formulario modificamos la parte donde hereda de un control Form por el formulario plantilla


public partial class Form1 : Form2


vemos que cuando heredamos la parte visual del formulario cambia como se muestra en la imagen.



cuando ejecutamos vemos que el diseño se ha perdido porque en el formulario plantilla hemos establecido que solo se aplique en tiempo de diseño con DesignMode.

No hay comentarios.: