Je travaille sur un programme pour automatiser mes contrôles de sauvegarde avec la sauvegarde LogMeIn (un programme de formulaires basés sur Windows). J'ai maintenant besoin d'un moyen de stocker les paramètres de l'utilisateur, pour enregistrer des informations facilement. Je n'ai jamais travaillé avec les paramètres d'application/utilisateur qui sont quelque peu "intégrés" - et j'ai décidé de l'essayer, mais j'ai rencontré des problèmes.C# Properties.Settings.Default ne fonctionne pas comme prévu
j'ajouté quatre paramètres pour l'instant: IncludeCriteria (Specialized.StringCollection) ExcludeCriteria (Specialized.StringCollection) ReportPath (string) ReportType (int)
Mais le comportement ne fonctionne pas comme prévu (aller figure). Après avoir sauvegardé certaines valeurs dans mon programme, je reviens à éditer/voir mes valeurs de paramètres en utilisant l'éditeur de paramètres VS 2008. Aucune de mes valeurs n'est stockée. Bien que je pense que cela puisse être parce que ces valeurs ne sont que des valeurs par défaut, ne serait-ce pas là où elles peuvent être stockées/lues/changées?
Voici mon code sous forme de charge (encore très grossier):
private void setupForm()
{
txtPath.Text = BackupReport.Properties.Settings.Default.ReportPath == null ? "" : BackupReport.Properties.Settings.Default.ReportPath;
if (BackupReport.Properties.Settings.Default.ReportType == 0)
{
radioHTML.Checked = true;
}
else
radioExcel.Checked = true;
if (BackupReport.Properties.Settings.Default.IncludeCriteria.Count > 0)
{
listIncludeCriteria.DataSource = Properties.Settings.Default.IncludeCriteria;
//foreach (string s in Properties.Settings.Default.IncludeCriteria)
// listIncludeCriteria.Items.Add(s);
}
if (BackupReport.Properties.Settings.Default.ExcludeCriteria.Count > 0)
{
listExcludeCriteria.DataSource = BackupReport.Properties.Settings.Default.ExcludeCriteria;
//foreach (string s in Properties.Settings.Default.ExcludeCriteria)
// listExcludeCriteria.Items.Add(s);
}
}
listIncludeCriteria est juste une zone de liste. Lorsque l'utilisateur je sauve appeler cette méthode:
private void saveSettings()
{
//var settings = BackupReport.Properties.Settings;
if (txtPath.Text != "")
{
BackupReport.Properties.Settings.Default.ReportPath = txtPath.Text;
}
if (listIncludeCriteria.Items.Count > 0)
{
//BackupReport.Properties.Settings.Default.IncludeCriteria = (StringCollection)listIncludeCriteria.Items.AsQueryable();
foreach (var i in listIncludeCriteria.Items)
{
if (!isIncludeDuplicate(i.ToString()))
BackupReport.Properties.Settings.Default.IncludeCriteria.Add(i.ToString());
}
}
if (listExcludeCriteria.Items.Count > 0)
{
//BackupReport.Properties.Settings.Default.ExcludeCriteria = (StringCollection)listExcludeCriteria.Items.AsQueryable();
foreach (var i in listExcludeCriteria.Items)
{
if (!isExcludeDuplicate(i.ToString()))
Properties.Settings.Default.ExcludeCriteria.Add(i.ToString());
}
}
if (radioExcel.Checked == true)
BackupReport.Properties.Settings.Default.ReportType = 1;
else
BackupReport.Properties.Settings.Default.ReportType = 0;
BackupReport.Properties.Settings.Default.Save();
//Properties.Settings.Default.Save();
this.DialogResult = DialogResult.OK;
this.Close();
}
La chose étrange est quand les charges de forme, le chemin que je mets la première fois semble venir (ReportPath) - même les listes déroulantes sont peuplées avec un groupe de merde je mets - pourtant je ne peux pas trouver ces valeurs partout.
Toute aide serait appréciée!
Josh
Cette réponse dit tout http://stackoverflow.com/ des questions/1804302/où est-la-données pour-propriétés-settings-default- –