cs_developper_man
Messages postés13Date d'inscriptionmardi 30 septembre 2003StatutMembreDernière intervention22 février 2012
-
22 févr. 2012 à 17:07
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 mars 2012
-
4 mars 2012 à 00:41
bonjour tout le monde
voila, j'aimerai réaliser une petite fenetre "parametres" qui me permettra de lister tout les parametres de l'application et de les modifier.
ce bout de code fait trés bien le travail, mais au relancement de l'application on dirai que le fihier config modifié "user.config" qui existe dans "application data" ne se charge pas.
quelqu'un à une idée???
merci
public partial class parametres : Form
{
private System.Windows.Forms.Label[] lblSettings;
private System.Windows.Forms.TextBox[] txtSettings;
public parametres()
{
InitializeComponent();
}
private void parametres_Load(object sender, EventArgs e)
{
initialiser();
}
void initialiser()
{
int i = 0;
lblSettings = new Label[Properties.Settings.Default.Properties.Count];
txtSettings = new TextBox[Properties.Settings.Default.Properties.Count];
foreach (System.Configuration.SettingsProperty item in Properties.Settings.Default.Properties)
{
//
// label1
//
this.lblSettings[i] = new Label();
this.lblSettings[i].AutoSize = true;
this.lblSettings[i].Location = new System.Drawing.Point(25, 56 + i * 40);
this.lblSettings[i].Name = "lbl" + item.Name;
this.lblSettings[i].Size = new System.Drawing.Size(35, 13);
this.lblSettings[i].TabIndex = 0;
this.lblSettings[i].Text = item.Name;
//
// textBox1
//
this.txtSettings[i] = new TextBox();
this.txtSettings[i].Location = new System.Drawing.Point(135, 52 + i * 40);
this.txtSettings[i].Name = "txt" + item.Name;
this.txtSettings[i].Size = new System.Drawing.Size(314, 20);
this.txtSettings[i].TabIndex = 1;
this.txtSettings[i].Text = item.DefaultValue.ToString();
this.Controls.Add(this.txtSettings[i]);
this.Controls.Add(this.lblSettings[i]);
i = i + 1;
}
}
private void btnSave_Click(object sender, EventArgs e)
{
foreach (System.Configuration.SettingsProperty item in Properties.Settings.Default.Properties)
{
item.DefaultValue = ((TextBox)this.Controls["txt" + item.Name]).Text;
}
Properties.Settings.Default.Save();
}
private void btnVider_Click(object sender, EventArgs e)
{
foreach (System.Configuration.SettingsProperty item in Properties.Settings.Default.Properties)
{
((TextBox)this.Controls["txt" + item.Name]).Text = "";
}
}
private void btnRecharger_Click(object sender, EventArgs e)
{
foreach (System.Configuration.SettingsProperty item in Properties.Settings.Default.Properties)
{
((TextBox)this.Controls["txt" + item.Name]).Text = item.DefaultValue.ToString();
}
}
}
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 mars 2012 4 mars 2012 à 00:41
madbob
Salut c'est une bonne idée ton code et tu as fait le plus gros du boulot...Même si on est nombreux à l'avoir fait
Tu as presque la solution. C'est juste qu'il y a une petite aastuce windows merci Microsoft on t'aime aussi pour ça?!?
Bref, tu travailles sur le chargement à partir des valeurs par défaut (le nom de la propriété que tu utilises est pourtant assez explicite "defaultvalue"...Pas terrible) Il faut que tu revois la valorisation et le chargement en utilisant le "item.name" comme indexeur de Setting.Default{item.Name]
pour le chargement : this.txtSettings[i].Text = Settings.Default[item.Name].ToString();