Come salvare le impostazioni del programma

martedì 24 aprile 2007 - 10.43

ikaroweb Profilo | Junior Member

Vorrei fare in modo che un'utente possa modificare l'interfaccia del programma e salvare queste impostazioni in modo tale che vengano ricaricate al riavvio del programma.
Come posso fare?
Pensavo ai file ini o al file di configurazione, ma aspetto un vostro consiglio.

sanbiz Profilo | Senior Member

>Vorrei fare in modo che un'utente possa modificare l'interfaccia
>del programma e salvare queste impostazioni in modo tale che
>vengano ricaricate al riavvio del programma.

Se stai utilizzando vb.net appoggiati all'oggetto My.Settings

Prova a guardare qui:
http://tinyurl.com/2jmpkk

--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

alextyx Profilo | Expert

Scusate se piombo nel mezzo della discussione, ma con i settings ho avuto da poco un incontro burrascoso.
Dopo aver definito, da IDE, una nuova voce di tipo testuale, averla destinata all'utente, così che fosse, in teoria, modificabile a runtime, ho provato a salvarci il percorso di un database, così come me lo restituisce la mia brava openfiledialog.
Meravigliosamente, il tutto sembrava funzionare, tanto che ho inviato il progetto ad un collega che però mi ha immediatamente telefonato dicendo che tutte le volte il programma gli chiedeva di indicargli il percorso del database, perchè a quello indicato non lo trovava. Ahimè, quello indicato era quello di default del settaggio stesso ("c:\") e non quello dove il db si trovava. Ho fatto alcune prove e ho visto che il tutto a me funzionava bene, ma....colpo di scena....mi sono ricordato che egli non usava lanciare l'applicazione da IDE, ma direttamente l'eseguibile. Questo avrebbe dovuto fare qualche differenza? Sì! Anch'io, lanciando l'eseguibile ho sperimentato il fatto che venivano ripescati i valori di default della voce 'My.settings.percorso' e tutte le volte si doveva ricercare il DB con la finestra di dialogo. Ho provato anche a imporre un salvataggio esplicito con il metodo My.settings.save, subito dopo aver caricato il nuovo valore, ma tutto funzionava da IDE e continuava a non funzionare lanciando l'eseguibile. Alla fine mi sono convinto a scrivere nel registro, come ai vecchi tempi!
Domanda: qualcuno di voi ha sperimentato con successo l'uso dei settings, senza 'bindare' la proprietà di un controllo, ma semplicemente recuperando il valore da codice, come tentavo di fare io, che volevo assegnare ad una stringa il valore del settaggio My.settings.percorso (tipo: Dim S as string=My.Settings.Percorso )?
Vi funziona anche lanciando l'eseguibile?
Scusate la prolissità e l'intromissione, ma la questione è ovviamente inerente al salvataggio di impostazioni dei programmi, che vorrei anch'io ottenere mediante i settings, se mi potessi fidare di loro!

sanbiz Profilo | Senior Member

Sì, nessun problema.
Se ad esemio ho una textbox posso lavorare così:

Alla load del form scrivo
textbox1.text = my.settings.myValue

Sulla close
my.settings.myValue = textBox1.text
my.settings.save


--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

alextyx Profilo | Expert

Allora dovrò controllare perchè a me lavora bene solo se lancio il programma dall'ambiente di sviluppo e non dall'eseguibile.
Purtroppo ho già eliminato quella parte di programma, ma ne farò uno apposito per fare la prova 'a pulito' e poi riproverò a rimetterlo anche in quella appllicazione. Grazie dell'info, comunque!

ikaroweb Profilo | Junior Member

Avevo gia letto il tuo articolo infatti avevo provato ad usare il mysetting ma senza successo.
Quello che vorrei fare io è questo:
avere un form dove un'utente seleziona le varie opzioni quindi testo,colori ecc. e al prossimo riavvio del programma queste impostazioni devono essere caricate.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5