Background d'une Windows Form [Résolu]

Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 13:07 - Dernière réponse :  Utilisateur anonyme
- 23 févr. 2012 à 22:58
Bonjour,

Je permet à l'utilisateur via un OpenFileDialog de changer l'image de fond :

frmAccueil.BackgroundImage = Image.FromFile(C:\Maphoto.jpg)


Cependant, a la fermeture de l'application, cela n'enregistre pas les changements.

Savez vous comment enregistrer ce changement de propriete ?

cordialement
Afficher la suite 

Votre réponse

23 réponses

Meilleure réponse
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 23 févr. 2012 à 15:50
3
Merci
Salut

tu peux te servir du setting
project -> properties -> settings
tun declare ta variable dans ton cas c'est le
chemin du fichier image
par ex
Name type scope value
mypath string user

dans le code
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Settings.mypath <> String.Empty Then
            Me.BackgroundImage = Image.FromFile(My.Settings.mypath)
        End If


    End Sub


dans le code du openfiledialog
My.Settings.mypath = OpenFileDialog1.FileName
 My.Settings.Save()

Merci cs_ShayW 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de cs_ShayW
Meilleure réponse
Utilisateur anonyme - 23 févr. 2012 à 22:58
3
Merci
va dire bonjour au poissons

C'est ce que j'ai fait! comment sais-tu?

Moundir:
je ne saurais certainement jamais pourquoi j'avais cette erreur et toi non...

De toute façon je trouvait nôtre solution un peu lourde, ne cherche pas...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 23 févr. 2012 à 13:28
0
Merci
Bonjour,

Il faudrait que tu stockes le chemin de l'image dans un fichier texte, base de données ou autre, à chaque changement.

Au démarrage tu lis le chemin de l'image en question et tu l'affiches en fond d'écran.



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 13:31
0
Merci
Bonjour et merci,

Etonnant, je pensais que l'on pouvait enregistrer les changements


Dans ce cas la, comment faire ? si je décide de mettre le chemin de l'image dans un fichier texte. Mettre le fichier texte dans les ressources ?

Je ne vois pâs trop comment m'y prendre.

Cordialement
Commenter la réponse de Moundir76
Utilisateur anonyme - 23 févr. 2012 à 14:01
0
Merci
Tu as raison,

Il faut arriver à changer le My.Resources. 'ton fichier jpg'
Je cherche un peu...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 14:20
0
Merci
Encore une fois Acive, un grand merci pour te pencher sur mon problème

Je ne vois pas ce que tu veux faire avec le My.Ressources. Car mon BackGroundImage est en local et l'image n'est pas dans les ressources.

Sinon j'ai une autre solution, je ne sais pas si c'est faisable, par exemple, laisser le choix à l'utilisateur de la photo, ensuite on la copie dans les ressources et on la renomme par exemple en Imagedefond.jpeg. Et si on change d'image alors celle qui se trouve dans les ressources sera effacée et remplacée.
Commenter la réponse de Moundir76
Utilisateur anonyme - 23 févr. 2012 à 14:24
0
Merci
Oui c'est un peu ça que voulais faire, mais je cherche à voir comment on change l'image dans les ressources.

Mais il est 9 heures du mat chez moi et mon cerveau a du mal à démarrer...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 14:47
0
Merci
Mais il est 9 heures du mat chez moi et mon cerveau a du mal à démarrer...


Je comprends ^^

J'ai trouvé un contournement de solution.

Lorsque l'utilisateur sélectionne une image, on la copie avec toujours le même nom dans le dossier de l'application, puis a chaque load de la form, on fait appel a cette image pour la définir (vu qu'elle sera toujours dans le dossier de l'appli avec le même nom...

Je vais tenter et je te redis, sauf si tu trouves une meilleure solution
Commenter la réponse de Moundir76
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 14:56
0
Merci
Oui ca fonctionne bien comme ça !

Seul inconvénient, a chaque load de la form on va recharger l'image.

Atout : si jamais l'image n'existe plus alors celle qui est dans les ressources sera affichée automatiquement :)

A++
Commenter la réponse de Moundir76
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 15:02
0
Merci
Le processus ne peut pas accéder au fichier 'backgroundAccueil.jpg', car il est en cours d'utilisation par un autre processus.


JE n'ai rien dit... retour a la case départ...
Commenter la réponse de Moundir76
Utilisateur anonyme - 23 févr. 2012 à 15:02
0
Merci
Ok,
J'avais testé de la remplacer (l'image) dans le dossier Ressources et ça ne changeait pas...

Du coup avec ta solution, on a pas de fichier texte pour y stocker le chemin mais un copier/coller de l'image, pourquoi pas?

Mais on ne change toujours pas le My.ressources... ça doit pouvoir se faire aussi.


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 23 févr. 2012 à 15:04
0
Merci
Le processus ne peut pas accéder au fichier 'backgroundAccueil.jpg', car il est en cours d'utilisation par un autre processus.


Tu as du le laissé ouvert avec paint ou quelque chose du genre, non?


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 15:10
0
Merci
Non l'image n'est ouverte nulle part sauf dans mon Background, mais j'ai pris soin de mettre le Background à Nothing avant....

JE ne comprends pas :/

Merci pour ton aide !
Commenter la réponse de Moundir76
Utilisateur anonyme - 23 févr. 2012 à 15:17
0
Merci
Si... je viens de tester ça:
Imports System.IO
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ChangeBackground()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Fich As OpenFileDialog = New OpenFileDialog
        Fich.ShowDialog()
        Me.Text = Fich.FileName
        FileCopy(Fich.FileName, Application.StartupPath & "\Logo.jpg")
        ChangeBackground()
    End Sub

    Private Sub ChangeBackground()
        If File.Exists(Application.StartupPath & "\Logo.jpg") = True Then
            Me.BackgroundImage = Image.FromFile(Application.StartupPath & "\Logo.jpg")
        End If
    End Sub
End Class



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 15:31
0
Merci
Merci pour ton code, mais toujours la même erreur ...
Commenter la réponse de Moundir76
Utilisateur anonyme - 23 févr. 2012 à 15:39
0
Merci
Ton fichier image doit être ouvert quelque-part... chez moi ça marche bien.

Regarde dans le gestionnaire des tâches (Ctrl+Alt+Supp) si tu vois son processus en cours.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 23 févr. 2012 à 15:53
0
Merci
Merci Shay,
J'avais oublié celui-la...
décidément aujourd'hui ça "rame" chez moi...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 15:54
0
Merci
Je viens de regarder j'ai même redemarré mon ordinateur, et je n'ai ouvert que l'application, et j'ai toujours la même erreur "Le processus ne peut pas accéder au fichier 'backgroundAccueil.jpg', car il est en cours d'utilisation par un autre processus."

Je ne comprends absolument pas. D'un sens cela me parait logique si cette image est utilisée par VB pour le backgroundImage, mais pourquoi y arrives tu toi ?
Commenter la réponse de Moundir76
Utilisateur anonyme - 23 févr. 2012 à 15:57
0
Merci
Laisse voir ton code, sinon essaye la méthode de Shay, désolé je dois sortir je reviens dans quelques heures.


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 févr. 2012 à 15:59
0
Merci
J'utilise ton code ...

Je vais essayer celui de ShayW (d'ailleurs merci)

No souci
Commenter la réponse de Moundir76

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Background d'une Windows Form - page 2