none
¡AYUDA! CON CÓDIGO DE CAMBIAR EL FONDO DEL FORMULARIO POR EL DEL ESCRITORIO C# RRS feed

  • Pregunta

  • Un cordial saludo, espero se encuentren bien, el motivo de mi mensaje es porque el código que proporcionó en la parte de abajo, si me cambia el fondo del formulario, por el fondo del escritorio, pero el error que tengo es que si tengo varias imágenes pasando por determinado tiempo en mi escritorio y al momento de abrir el programa se congela la imagen del escritorio y del programa y deja de pasar mis imagenes que tenia en mi escritorio, hasta que cierro el programa continúan pasando mis imagenes de mi escritorio, mi pregunta es ¿Hay alguna manera de que el código que les proporcionó no deje estático mis imagenes del escritorio y por supuesto tampoco las imagenes del formulario que se van colocando?, el código como esta a mi me gusta la unica desventaja y que me gustaría que si de favor me pudieran ayudar a corregir y es que al momento de abrir el programa deja estática la imagen actual del escritorio y del formulario apesar que tengan un conjunto de imágenes pasando como diapositivas por tu escritorio, de antemano seria todo de mi parte, espero contar con su apoyo, saludos. 

    string Clave1 = @"HKEY_CURRENT_USER\Control Panel\Desktop";
                string clave2 = "WallPaper";
                string NoClave = "no existe valor";
                string dato = (string)Registry.GetValue(Clave1, clave2, NoClave);
                if (!(dato == NoClave))
                {
                    this.BackgroundImageLayout = ImageLayout.Stretch;
                    this.BackgroundImage = Image.FromFile(dato);
                }
                else
                {
                    MessageBox.Show(dato);
                } 

    Saludos desde México, recuerden que nada es imposible, todo es posible, el punto aquí es que tu decidas avanzar, un gran consejo de mi padre, que tenga una hermosa vida de prosperidad y alegría.  


    miércoles, 20 de diciembre de 2017 6:50

Respuestas

  • Buenas,

    Se me ocurre, podrías guardar una variable a nivel de form con el nombre del la imagen, y meter el proceso en un timer, de modo que cada X tiempo, leas la key, y si el finde de escritorio ha cambiado, cargues la imagen, Le apliques filtro y la pongas de fondo.

    Si tienes dudas coméntanos. 

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    miércoles, 20 de diciembre de 2017 11:51
  • Jorge Turrado y HQ56 Muchas gracias por el apoyo a los dos, encontre este codigo que me ayuda a borrar la imagen creada para volverla a reemplazar sin ningún problema.

    using (var stream = File.Open("Fondo.jpg", FileMode.Open))
                    {
                        imageBox.Source = FromStream(System.Drawing.Image.FromStream(stream));
                    }

    Saludos desde México, recuerden que nada es imposible, todo es posible, el punto aquí es que tu decidas avanzar, un gran consejo de mi padre, que tenga una hermosa vida de prosperidad y alegría. 

    jueves, 21 de diciembre de 2017 8:08

Todas las respuestas

  • Buenas,

    Se me ocurre, podrías guardar una variable a nivel de form con el nombre del la imagen, y meter el proceso en un timer, de modo que cada X tiempo, leas la key, y si el finde de escritorio ha cambiado, cargues la imagen, Le apliques filtro y la pongas de fondo.

    Si tienes dudas coméntanos. 

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    miércoles, 20 de diciembre de 2017 11:51
  • .

    • Propuesto como respuesta Jorge TurradoMVP miércoles, 20 de diciembre de 2017 16:19
    • Editado HQ56 miércoles, 20 de diciembre de 2017 16:51
    miércoles, 20 de diciembre de 2017 15:53
  • Jorge Turrado Muchas gracias por responder de hecho lo primero que hice es copiar la imagen la carpeta base y de ahí tomarla asi ya no se queda estático, pero el problema está cuando cambia la imagen no se puede volver a reemplazar porque me dice que la imagen se está utilizando y no se puede volver a copiar  o reemplazar, y si de hecho utilizó un timer para hacer cambio de imagen y se esté actualizando cada cierto tiempo, el único problema es que no puedo volver a cambiar la misma imagen mientras se esté usado, saldos

    Saludos desde México, recuerden que nada es imposible, todo es posible, el punto aquí es que tu decidas avanzar, un gran consejo de mi padre, que tenga una hermosa vida de prosperidad y alegría.  

    miércoles, 20 de diciembre de 2017 21:58
  • HQ56 muchas gracias por contestar pero me creeras que no sale tu respuesta solo que lo publicaste tu saludos.

    Saludos desde México, recuerden que nada es imposible, todo es posible, el punto aquí es que tu decidas avanzar, un gran consejo de mi padre, que tenga una hermosa vida de prosperidad y alegría.  

    miércoles, 20 de diciembre de 2017 22:01
  • Jorge Turrado y HQ56 Muchas gracias por el apoyo a los dos, encontre este codigo que me ayuda a borrar la imagen creada para volverla a reemplazar sin ningún problema.

    using (var stream = File.Open("Fondo.jpg", FileMode.Open))
                    {
                        imageBox.Source = FromStream(System.Drawing.Image.FromStream(stream));
                    }

    Saludos desde México, recuerden que nada es imposible, todo es posible, el punto aquí es que tu decidas avanzar, un gran consejo de mi padre, que tenga una hermosa vida de prosperidad y alegría. 

    jueves, 21 de diciembre de 2017 8:08