Oppure

Loading
21/07 10:00
alip1
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:
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
aaa
21/07 14:10
Carlo
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.

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 23/07 1:16
in programmazione tutto è permesso
21/07 14:37
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();

in programmazione tutto è permesso
22/07 11:46
alip1
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?
aaa
22/07 13:03
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:
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:
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 22/07 13:42
in programmazione tutto è permesso
29/07 9:25
alip1
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:
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:
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
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
aaa
29/07 11:51
Carlo
Postato originariamente da alip1:

l'struzione
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:
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:

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 29/07 12:13
in programmazione tutto è permesso
22/10 9:52
alip1
Grazie Carlo buona domenica
aaa