
alip1 (Normal User)
Pro
    
Messaggi: 124
Iscritto: 12/08/2019
|
Buongiorno approfitto ancora una volta della vs squisita disponibilità per chiedervi se e come sia possibile gestire a run time in c# i valori di settings definiti a livello di progettazione in properties.settings.settings. in VB si utilizza My.Settings ma in c# cosa occorre fare?? Gli esempi della microsoft non specifono con esattezza la procedura: ad esempio per settare una stringa dicono di fare:
Codice sorgente - presumibilmente Plain Text |
Properties.Settings.Default.FirstUserSetting = "abc";
Properties.Settings.Default.Save();
|
ma non funziona anzi mi da subito errore perché questi oggetti non sono conosciuti...
se nel settings.settings a livello di progettazione o definito Name: LicenseCode - Type: string - Scope: User - Value: Abcd23456Sr
ome si fa a leggere la stringa settata ed eventualmente cambiarla a runtime???
Grazie a tutti
|
|

Carlo (Member)
Guru
    
Messaggi: 1198
Iscritto: 29/01/2018
|
I nomi dei setting personali vanno creati, come già sai.
In Esplora soluzioni clicca con il tasto desto sopra al nome del progetto e scegli Properties.
Sulla pagina delle proprietà scegli Setting e imposta Name, Type e Scope, vedi foto allegata (VS2012 in Italiano).
Se su Scope scegli User i valori vengono salvati per l'utente in uso.
Codice sorgente - presumibilmente C# |
public partial class Form1 : Form { public Form1() { InitializeComponent(); string nomeEpass = Properties.Settings.Default.nomeUtente + Environment.NewLine + Properties.Settings.Default.pswUtente; MessageBox.Show(nomeEpass); } private void button1_Click(object sender, EventArgs e) { Properties.Settings.Default.nomeUtente = "Carlo"; Properties.Settings.Default.pswUtente = "2222"; Properties.Settings.Default.Save(); string nomeEpass = Properties.Settings.Default.nomeUtente + Environment.NewLine + Properties.Settings.Default.pswUtente; MessageBox.Show(nomeEpass); } }
|
In questo esempio se imposti i valori come in foto allegata, al primo avvio messagebox mostra:
alip1
1111
se clicchi button1, modifichi i setting li mostri e li salvi, ai successivi riavvii messagebox mostrerà:
Carlo
2222
finquando non rimodifichi i setting.
Ultima modifica effettuata da Carlo il 23/07/2023 alle 3:16
in programmazione tutto è permesso |
|

Carlo (Member)
Guru
    
Messaggi: 1198
Iscritto: 29/01/2018
|
Postato originariamente da alip1:
se nel settings.settings a livello di progettazione o definito Name: LicenseCode - Type: string - Scope: User - Value: Abcd23456Sr
ome si fa a leggere la stringa settata ed eventualmente cambiarla a runtime???
Grazie a tutti |
lettura:
string code = Properties.Settings.Default.LicenseCode;
scrittura e salvataggio:
Properties.Settings.Default.LicenseCode = "NuovoValore";
Properties.Settings.Default.Save();
in programmazione tutto è permesso |
|

alip1 (Normal User)
Pro
    
Messaggi: 124
Iscritto: 12/08/2019
|
Postato originariamente da Carlo:
Postato originariamente da alip1: se nel settings.settings a livello di progettazione o definito Name: LicenseCode - Type: string - Scope: User - Value: Abcd23456Sr
ome si fa a leggere la stringa settata ed eventualmente cambiarla a runtime??? Grazie a tutti |
lettura: string code = Properties.Settings.Default.LicenseCode; scrittura e salvataggio: Properties.Settings.Default.LicenseCode = "NuovoValore"; Properties.Settings.Default.Save();
|
Grazie. Quindi non occorre nessun using?
|
|

Carlo (Member)
Guru
    
Messaggi: 1198
Iscritto: 29/01/2018
|
Postato originariamente da alip1:
Quindi non occorre nessun using? |
Nell'esempio precedente ho usato: Environment.NewLine che ha bisogno di using System;
se l'using è omesso basta scrivere: System.Environment.NewLine
Properties.Settings.Default non ha bisogno di using.
Visto che stai progettando in WindowsForm un'altro using consigliabile è:
using System.Windows.Forms;
Gi using servono per risparmiare codice nessuno obbliga il loro inserimento.
Il codice:
Codice sorgente - presumibilmente C# |
using System; using System.Windows.Forms; namespace Setting { public partial class Form1 : Form { public Form1() { InitializeComponent(); string nomeEpass = Properties.Settings.Default.nomeUtente + Environment.NewLine + Properties.Settings.Default.pswUtente; MessageBox.Show(nomeEpass); } private void button1_Click(object sender, EventArgs e) { Properties.Settings.Default.nomeUtente = "Carlo"; Properties.Settings.Default.pswUtente = "3333"; Properties.Settings.Default.Save(); string nomeEpass = Properties.Settings.Default.nomeUtente + Environment.NewLine + Properties.Settings.Default.pswUtente; MessageBox.Show(nomeEpass); } } }
|
senza using, diventa:
Codice sorgente - presumibilmente C# |
namespace Setting { public partial class Form1 : System.Windows.Forms.Form { public Form1() { InitializeComponent(); string nomeEpass = Properties.Settings.Default.nomeUtente + System.Environment.NewLine + Properties.Settings.Default.pswUtente; System.Windows.Forms.MessageBox.Show(nomeEpass); } private void button1_Click(object sender, System.EventArgs e) { Properties.Settings.Default.nomeUtente = "Carlo"; Properties.Settings.Default.pswUtente = "3333"; Properties.Settings.Default.Save(); string nomeEpass = Properties.Settings.Default.nomeUtente + System.Environment.NewLine + Properties.Settings.Default.pswUtente; System.Windows.Forms.MessageBox.Show(nomeEpass); } } }
|
Ultima modifica effettuata da Carlo il 22/07/2023 alle 15:42
in programmazione tutto è permesso |
|

alip1 (Normal User)
Pro
    
Messaggi: 124
Iscritto: 12/08/2019
|
Postato originariamente da Carlo:
Postato originariamente da alip1:
Quindi non occorre nessun using? |
Nell'esempio precedente ho usato: Environment.NewLine che ha bisogno di using System;
se l'using è omesso basta scrivere: System.Environment.NewLine
Properties.Settings.Default non ha bisogno di using.
Visto che stai progettando in WindowsForm un'altro using consigliabile è:
using System.Windows.Forms;
Gi using servono per risparmiare codice nessuno obbliga il loro inserimento.
Il codice:
Codice sorgente - presumibilmente C# |
using System; using System.Windows.Forms; namespace Setting { public partial class Form1 : Form { public Form1() { InitializeComponent(); string nomeEpass = Properties.Settings.Default.nomeUtente + Environment.NewLine + Properties.Settings.Default.pswUtente; MessageBox.Show(nomeEpass); } private void button1_Click(object sender, EventArgs e) { Properties.Settings.Default.nomeUtente = "Carlo"; Properties.Settings.Default.pswUtente = "3333"; Properties.Settings.Default.Save(); string nomeEpass = Properties.Settings.Default.nomeUtente + Environment.NewLine + Properties.Settings.Default.pswUtente; MessageBox.Show(nomeEpass); } } }
|
senza using, diventa:
Codice sorgente - presumibilmente C# |
namespace Setting { public partial class Form1 : System.Windows.Forms.Form { public Form1() { InitializeComponent(); string nomeEpass = Properties.Settings.Default.nomeUtente + System.Environment.NewLine + Properties.Settings.Default.pswUtente; System.Windows.Forms.MessageBox.Show(nomeEpass); } private void button1_Click(object sender, System.EventArgs e) { Properties.Settings.Default.nomeUtente = "Carlo"; Properties.Settings.Default.pswUtente = "3333"; Properties.Settings.Default.Save(); string nomeEpass = Properties.Settings.Default.nomeUtente + System.Environment.NewLine + Properties.Settings.Default.pswUtente; System.Windows.Forms.MessageBox.Show(nomeEpass); } } }
|
|
l'struzione
Codice sorgente - presumibilmente C# / VB.NET |
string nomeEpass = Properties.Settings.Default.nomeUtente + System.Environment.NewLine + Properties.Settings.Default.pswUtente;
|
è utilizzabile ovunque, anche in una classe o è obbligatorio usarla in un form?? grazie |
|

Carlo (Member)
Guru
    
Messaggi: 1198
Iscritto: 29/01/2018
|
Postato originariamente da alip1:
l'struzione
Codice sorgente - presumibilmente C# / VB.NET |
string nomeEpass = Properties.Settings.Default.nomeUtente + System.Environment.NewLine + Properties.Settings.Default.pswUtente;
|
è utilizzabile ovunque, anche in una classe o è obbligatorio usarla in un form?? grazie |
Si.
Se hai una classe:
Codice sorgente - presumibilmente C# |
using System; namespace Setting { public class Class1 { public static string nomeEpass { get; set; } public static void leggi () { nomeEpass = Properties.Settings.Default.nomeUtente + Environment.NewLine + Properties.Settings.Default.pswUtente; } } }
|
Il codice sotto a button1 diventa:
Codice sorgente - presumibilmente C# / VB.NET |
private void button1_Click(object sender, EventArgs e)
{
Properties.Settings.Default.nomeUtente = "Carlo";
Properties.Settings.Default.pswUtente = "3333";
Properties.Settings.Default.Save();
Class1.leggi();
MessageBox.Show(Class1.nomeEpass);
}
|
Ultima modifica effettuata da Carlo il 29/07/2023 alle 14:13
in programmazione tutto è permesso |
|