Retroceder   Foros del Web > Programación para sitios web > .NET > win forms

Respuesta
 
Herramientas Desplegado
Antiguo 14-ago-2007, 05:48   #1 (permalink)
chcma está en el buen camino
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 1.856
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.
chcma está desconectado   Responder Citando
Antiguo 14-ago-2007, 12:26   #2 (permalink)
coyote20 ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2005
Mensajes: 680
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
coyote20 está desconectado   Responder Citando
Antiguo 12-sep-2007, 01:52   #3 (permalink)
bananas ha deshabilitado el karma
 
Fecha de Ingreso: junio-2004
Ubicación: ORENSE
Mensajes: 250
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
bananas está desconectado   Responder Citando
Antiguo 04-abr-2008, 09:29   #4 (permalink)
oscarf8 no se puede cailificar en este momento
 
Fecha de Ingreso: febrero-2007
Mensajes: 16
Re: Problema repintando formulario c# 2.0

Use el evento refresh del formulario asi:

MainForm.ActiveForm.Refresh();

Saludos.
oscarf8 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:36.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93