Visual basic 2010 domanda su una picture box

Pubblicità

Gio Frapolli

Utente Attivo
Messaggi
127
Reazioni
5
Punteggio
54
Salve avrei una domanda riguardante una picturebox, in pratica io dovrei salvare un'immagine di una picturebox(che sarebbe lo sfono del mio "os" in visual basic)che ho cambiato tramite un altro form in modo che si ripresenti al prossimo avvio del programma.

In due parole il form che cambia lo sfondo contiene una picturebox costui conterrà l'immagine che verrà selezionata come sfondo una volta cliccato su cambia, lo sfondo del "form desktop" viene cambiata il problema é che al prossimao avvio ricaricherà l'immagine che ho messo come predefinita, quindi come potrei fare per sostituire la predefinita con quella scelta da me?

grazie in anticipo
 
Ciao, se vuoi il cambio in automatico all'apertura del form, dovresti modificare la proprietà della picture box impostando una routine nell'evento form load del form al quale vuoi applicare il tuo sfondo preferito.
Hai già provato così?
 
Ciao grazie per avermi risposto
allora ma tu intendi dire che all'avvio si apre un'immagine giusto?

ecco quello lo fatto poi perÒ io tramite un form do la possibilità di cambiare immagine se all'utente non gli piace come windows solo che il problema é quando io spengo tutto e lo riaccendo,quindi la simulazione di spegnere e riaccendere il sistema operativo perché ricarca l'mmagine di default che ho messo mente che io vorrei che il form la cambiasse definitivamente in modo che al prossimo avvio del programma ci sia ancora quella come foto semai se voui darci un'occhiata ti posto il link dove puoi trovare il mio progetto cosÌ vedi un po' cosa intendo io intanto ti ringrazio

gioele
 
Ciao grazie per avermi risposto
allora ma tu intendi dire che all'avvio si apre un'immagine giusto?

ecco quello lo fatto poi perÒ io tramite un form do la possibilità di cambiare immagine se all'utente non gli piace come windows solo che il problema é quando io spengo tutto e lo riaccendo,quindi la simulazione di spegnere e riaccendere il sistema operativo perché ricarca l'mmagine di default che ho messo mente che io vorrei che il form la cambiasse definitivamente in modo che al prossimo avvio del programma ci sia ancora quella come foto semai se voui darci un'occhiata ti posto il link dove puoi trovare il mio progetto cosÌ vedi un po' cosa intendo io intanto ti ringrazio

gioele

Allora nel form dove sceglie immagine usi un openfiledialog?
se si fai cosi
aggiungi a using
using System.IO;

e nel bottone

DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK) // Test result.
{
string file = openFileDialog1.FileName;
using (StreamWriter writer = new StreamWriter("immagine.txt"))
{
writer.Write(file);
}
}

e dove carica immagine

if (File.Exists("immagine.txt"))
{
using (StreamReader sr = new StreamReader("immagine.txt"))
{
pictureBox1.Image = Image.FromFile(sr.ReadLine());
}
}
 
ciao lorcio guarda ti do il codice del form che serve per cambiare immagine così vedi comunque uso open file dialog

Imports
System.Drawing.Image
Public
Class Form23

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Form1.PictureBox20.Image = PictureBox1.Image

End Sub

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click

Dim dig As OpenFileDialog = New OpenFileDialog
dig.Filter =
"file immagine |*.jpg|*.jpeg|*.bmp|*.pgn|*.dib|*.gif|*.jpe|*.jfif|*.tif|*.tiff|*.*"
dig.Title =
"Selizionare l'immagine"
dig.ShowDialog()
PictureBox1.Image = System.Drawing.
Image.FromFile(dig.FileName)

End Sub
 
Ciao Gio, il suggerimento di lorigio è di creare un file di configurazione in formato txt. Quando selezioni una nuova immagini di sfondo con la routine button2_click, aggiungi anche due righe che creano o aggiornano un file di testo nel quale salvi il percorso del file dell'immagine desiderata.

Nell'evento form_load, inserisci un controllo come ti indica lui, che dice che se esiste il file di configurazione, allora l'applicazione ne carica il contenuto e aggiorna l'immagine nella picture box.

if (File.Exists("immagine.txt"))
{
using (StreamReader sr = new StreamReader("immagine.txt"))
{
pictureBox1.Image = Image.FromFile(sr.ReadLine());
}
}
 
ciao lorcio guarda ti do il codice del form che serve per cambiare immagine così vedi comunque uso open file dialog

Imports
System.Drawing.Image
Public
ClassForm23

PrivateSub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Form1.PictureBox20.Image = PictureBox1.Image

EndSub

PrivateSub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click

Dim dig AsOpenFileDialog = NewOpenFileDialog
dig.Filter =
"file immagine |*.jpg|*.jpeg|*.bmp|*.pgn|*.dib|*.gif|*.jpe|*.jfif|*.tif|*.tiff|*.*"
dig.Title =
"Selizionare l'immagine"
dig.ShowDialog()
PictureBox1.Image = System.Drawing.
Image.FromFile(dig.FileName)

EndSub

Ah è vb.net scusa :asd:

Allora in quel form sotto a
Imports System.Drawing.Image

Aggiungi
Imports System.IO

sotto a
Image.FromFile(dig.FileName)

Aggiungi
Using sw As StreamWriter = New StreamWriter("immagine.txt")
sw.WriteLine(dig.FileName)
EndUsing

Nel form load aggiungi sempre
Imports System.IO;

poi metti questo
If File.Exists("immagine.txt") Then
Using sr As StreamReader = New StreamReader("immagine.txt")
Image.FromFile(sr.ReadLine())
End Using
Else
 
Ultima modifica:
Using sw AsStreamWriter = NewStreamWriter("immagine.txt")
sw.WriteLine(dig.FileName)
EndUsing()

ciao lorgio questo codice che mi hai dato messo sotto a PictureBox1.Image = System.Drawing.Image.FromFile(dig.FileName)

mi dice che la prima stringa é tutta errata e poi mi da ancora come errato anche EndUsing() come mai?


scusami ho capito tu hai messo EndUsing() tutto attaccato mentre andava scritto staccato hehe apposto grazie mille a tutti quanti che mi avete consigliato ora vedo se funziona


 
Ultima modifica:
Ciao lorgio ciao roberto ho provato con il codice solo che se metto il codice nel form load non succede nulla io penso dovrebbe esserci un cenno alla picturebox relativa non credete?
 
Ciao credo di aver capito e risolto :)
Allora, nel form di impostazione dello sfondo, nella routine button_click ho inserito un paio di righe che salvano il percorso dell'immagine selezionata in un file config.txt.
Ricordati di inserire Imports System.IO in alto, prima di ogni altra riga.


Codice:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim strCurrentDirectory As String = Directory.GetCurrentDirectory
        Dim dig As OpenFileDialog = New OpenFileDialog
        dig.Filter = "file immagine |*.jpg|*.jpeg|*.bmp|*.pgn|*.dib|*.gif|*.jpe|*.jfif|*.tif|*.tiff|*.*"
        dig.Title = "Selizionare l'immagine"
        dig.ShowDialog()
        PictureBox1.Image = System.Drawing.Image.FromFile(dig.FileName)
        File.WriteAllText(strCurrentDirectory & "\config.txt", dig.FileName)
    End Sub

La routine Form1_load ora verifica se esiste un file config.txt e, se esiste, ci legge il percorso dell'immagine di sfondo.
Ci vorrebbero dei controlli Try e Catch e altre sofisticherie, ma così funziona :) Anche qui in alto, a inizio codice metti Imports.IO

Codice:
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim strDirectory As String = Directory.GetCurrentDirectory()
        Dim strBackground As String
        If File.Exists(strDirectory & "\config.txt") Then
            strBackground = File.ReadAllText(strDirectory & "\config.txt")
            PictureBox20.Image = Image.FromFile(strBackground)
        End If

        Timer1.Start()
        Timer2.Start()
        Me.WindowState = FormWindowState.Maximized
        If My.Settings.attivazione = 1 Then
            Button23.Visible = False
        End If
    End Sub

Un consiglio generico: al prossimo progetto, dai nomi comprensibili a ogni form, oggetto e variabile usando la notazione che preferisci. Usando i nomi standard tipo form1, form1, eccetera alla fine non ti ci ritrovi più!

Complimenti per il progetto, veramente simpatico :)
 
Ciao roberto si hai ragione sui form infatti devo cambiare nome ma lo faccio con calma quando ho un po' di tempo grazie mille...

ps: ho provato e funziona tutto bravo grazie anche lorgio insomma grazie a tutte e due per la disponibilità
 
Ultima modifica:
Pubblicità
Pubblicità
Indietro
Top