按名称访问程序设置

时间:2009-12-18 20:42:55

标签: c# settings user-input

我正在用C#编写程序。该程序控制物理过滤轮,其具有可互换的轮A至H.每个轮可以容纳8个过滤器。我希望用户能够为每个轮子中的每个过滤器存储友好名称(总共64个)。设备和程序能够识别车轮ID(A-H)和过滤器位置(1-8),因此存储这64个名称的最佳方式是什么,并且能够通过ID和POS引用它们。我可以为每个创建一个用户设置但是有两个问题:1)每个登录到机器的用户(我认为)的名称都不相同,以及2)为了以编程方式访问特定名称我必须使用一个巨大的案例陈述。或者有没有办法通过名称访问设置?像这样..?

char WheelID = 'A';
int FilterPos = 4;
NewName = "FriendlyName";

string SettingIWant = WheelID.ToString() + FilterPos.ToString();

Properties.Settings[SettingIWant].Text = NewName;

4 个答案:

答案 0 :(得分:2)

好吧,我只是愚蠢而忽略了访问设置......

string SettingToChange = WheelID.ToString() + Position.ToString();
            Settings1.Default[SettingToChange] = NewName;
            Settings1.Default.Save();

它运作得很好。唯一的问题是存储的值对于每个用户都不一样,但他们只需要处理它!

答案 1 :(得分:1)

好吧,你可以采用数据库方法。

“内存中”解决方案是Dictionaries。

char WheelID = 'A';
int FilterPos = 4;
NewName = "FriendlyName";

string SettingIWant = WheelID.ToString() + FilterPos.ToString();
Dictionary<string, string> properties = new Dictionary<string, string>()
properties.Add(SettingIWant, NewName);

Ant然后您可以使用括号语法

访问数据
properties[SettingIWant]

答案 2 :(得分:0)

当然有。只需覆盖[]运算符。

答案 3 :(得分:0)

行。我只做了一些极少的研究,这就是我认为你想做的事情。

首先,除了使用System.Collections.Specialized.StringDictionary之外,实施Rodrigo Garcia的Dicitonary事物。这是可以添加到设置文件中的类型之一。

设置应用程序设置时,如果在列表中没有看到,请在“类型”下选择“浏览...”。

如果集合发生变化,请确保始终将更改写出来!