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

Problema repintando formulario c# 2.0

Estas en el tema de Problema repintando formulario c# 2.0 en el foro de .NET en Foros del Web. Muy buenas amigos, Vereis, tengo el metodo onPaint sobreescrito para dibujar el fondo de un formulario. Hasta ahi perfecto, pero... si maximizo el formulario, este ...
  #1 (permalink)  
Antiguo 14/08/2007, 05:48
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Problema repintando formulario c# 2.0

Muy buenas amigos,

Vereis, tengo el metodo onPaint sobreescrito para dibujar el fondo de un formulario. Hasta ahi perfecto, pero... si maximizo el formulario, este se actualiza mal, se crean dos fondos, uno con el recuadro del tamaño del formulario al inicio, y otro abajo con el tamaño del formulario actual. Si despues minimizo y luego restauro, este se vuelve a poner bien, pero.. si redimensiono, el formulario no actualiza bien el repintado.

Puse este codigo, pensando que me resolvería el problema, pero no es asi:
Código:
        protected override void OnPaint(PaintEventArgs e)
        {            
            // declara linear gradient brush para llenar el fondo del form
            LinearGradientBrush GBrush = new LinearGradientBrush(new Point(0, 0), new Point(0, this.Height), 
                                                                 Color.DarkBlue, Color.White);

            Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);

            // llena con degradado 
            e.Graphics.FillRectangle(GBrush, rect);
            base.OnPaint(e);
        }
__________________
Charlie.
  #2 (permalink)  
Antiguo 14/08/2007, 12:26
 
Fecha de Ingreso: febrero-2005
Mensajes: 867
Antigüedad: 19 años, 2 meses
Puntos: 3
Re: Problema repintando formulario c# 2.0

Hola CHCMA no se si sera lo mismo el C# pero en .NET yo lo hago de esta manera

Private Sub form1_paint(ByVal sender As Object, ByVal e As System.Windows.forms.PaintEventArgs) Handles MyBase.Paint
Dim graficarConFormulario As Graphics = Me.CreateGraphics
graficarConFormulario.DrawRectangle(New Pen(Color.Red), 50, 90, 200, 100)
End Sub

toma encuenta que el PAINT repinta los graficos cuando estos minimizan o son tapados por otro formulario si no le pones esto el grafico se desaparesera

para mantener la figura dibujada en todo momento debemos de ocurrir al evento Paint() de la clase form

System.Windows.Form.PaintEventArgs

bueno espero que te silva de algo suerte
  #3 (permalink)  
Antiguo 12/09/2007, 01:52
 
Fecha de Ingreso: junio-2004
Ubicación: ORENSE
Mensajes: 258
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Problema repintando formulario c# 2.0

Yo tengo un problema parecido,tengo unos botones que he hecho y el metodo paint lo tengo sobreescrito.Todo al principio funciona bien pero al abrir otro form si este se me pone por encima de los botones el trozo del boton que es tapado por el form desaparece aunque cierre el form.Solo vuelve a su estado original cuando por ejemplo tengo el mouse encima que entonces me cambia la imagen y lo vuelve a pintar.
Como puedo solucionar esto??
__________________
Inmuebles de Galicia:www.inmueblevirtual.net
Compartir piso en Galicia:www.inmueblevirtual.net/foro
  #4 (permalink)  
Antiguo 04/04/2008, 09:29
 
Fecha de Ingreso: febrero-2007
Mensajes: 32
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema repintando formulario c# 2.0

Use el evento refresh del formulario asi:

MainForm.ActiveForm.Refresh();

Saludos.
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 05:19.