Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Imagen de Fondo de un Formulario (http://www.forosdelweb.com/f29/imagen-fondo-formulario-320233/)

Dj_eDu 27/07/2005 05:03

Imagen de Fondo de un Formulario
 
Hola amigos

Estoy intentando poner una imagen de fondo en un formulario principal (MDI) de forma que me quede bien ajustada a los bordes y se modifique en tiempo de ejecución.
Para ello, 1º opté por establecer la imagen en la propiedad BackgroundImage pero incluso cambiando la propiedad BackgroundImageLayout, la imagen siempre sale repetida como mosaico (en caso de ser una imagen pequeña) o ajustada a la esquina izquierda superior y sin ajustarse (en caso de ser una imagen grande).
Viendo que no funcionaba opté por poner un PictureBox con la propiedad Dock = Fill y conseguí que me funcionara. Pero ahora el problema es que al cargar otro formulario, me aparecen detrás del PictureBox y no son visibles!!

Como hago para que el PictureBox no tape los formularios o bien para poner la imagen de fondo de otra manera??

Mil gracias

charlytesis 27/07/2005 07:34

Te olvidaste de otra gran opcion de los picturesbox's, existe la propiedad Anchor que puedes ponerle del tamaño total de la pagina o del tamaño que tu quieras...... :adios:

Jose_minglein2 27/07/2005 08:34

Me.BackgroundImage = New System.Drawing.Bitmap(New System.Drawing.Bitmap(ruta), me.width, me.height)

Con una sola línea el tu sub load, te ajusta la imagen

Suerte!!!

Dj_eDu 27/07/2005 08:50

Con anchor tb probé y nada de nada :P

Jose, he probado esa línea de código y efectivamente me pone la imagen como fondo pero no me hace resize :S

Jose_minglein2 27/07/2005 09:17

Supongo que cuando te refieres ha resize, hablas de cuando cambias el tamaño de tu form, y que lo has puesto aquí

Private Sub me_resieze(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Resize
'La linea en cuestion que paso de copiar y pegar
End Sub

???

Dj_eDu 27/07/2005 09:42

Muchas gracias! Parece que funciona, aunque el resize no lo haga perfecto..
También me estoy planteando si poner la imagen de fondo, ya que tarda mucho en cargar y la pantalla "parpadea"

Jose_minglein2 27/07/2005 09:55

Resize no lo hace perfercto por una razón, y es que cuando se lanza el evento todavía no se ha "resizado", es decir, estas asignando el tamaño anterior, por lo que si estiras un formulario desde x hasta x +y, p.ej. te dejará el tamaño en x + y - valor, siendo valor, el ultimo tamaño captado.

Pureba con SizeChanged en vez de resize, haber si este se lanza después,

Jose_minglein2 27/07/2005 09:56

y así es más rápido, si no tiene que tener otro evento, que si se lance en la finalizacion del cambio de tamaño, es cuestión de buscar y probar (o de que alguien lo sepa y te lo chive jeje).

Dj_eDu 27/07/2005 11:03

Vaya lío xDDD Y eso que es solo una chorrada..
Lo he probado con SizeChanged y sigue igual. Creo que dejaré el diseño para el final jaja
Además no acaba de convencerme que la pantalla parpadee y se ralentice :S

Jose_minglein2 27/07/2005 15:01

No se, yo mis formularios con fondos no he tenido ningún tipo de problema de parpadeo como dices, quizá sea cuestión de Hardware, pero no se. Luego si puedo investigo para dar con el evento correcto.

Un saludo

Dj_eDu 28/07/2005 03:15

Hola de nuevo!
He conseguido ponerla de fondo con el picturebox y al llamar a un formulario hijo hago un SendToBack del picturebox y funciona: el formulario hijo aparece, pero el picturebox en vez de enviarse al fondo desaparece :S


La zona horaria es GMT -6. Ahora son las 06:41.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.