我有一个标签数组,我想保存此标签的文本,以便在加载表单时,相同的信息会加载到相同的标签中
此代码:
for (int i = 0; i < count; ++i)
{
Properties.Settings.Default.label = lblArray[i].Text;
Properties.Settings.Default.Save();
}
继续覆盖最后一个对象,因为该属性不是它自己的数组。有没有让Properties.Settings.Default.label
数组保存,然后正确加载数据?
更新
RE :(下面给出的答案)
再次加载:
for (int i = 0; i < countHeadWaiters; ++i)
{
lblHeadWaiterHours[i].Text = Properties.Settings.Default.label[i];
}
但不会返回任何内容
答案 0 :(得分:0)
遍历数组并在每次迭代时覆盖存储在Properties.Settings.Default.label
的先前值:
Properties.Settings.Default.label = lblArray[i].Text;
您可以加入值并将其写入Settings
。这不是最好的解决方案,如果碰巧在文本中有分隔符,可能无效,但是对于简单的风格很有用。
Properties.Settings.Default.label = string.Joint(Environment.NewLine, lblArray.Select(l => l.Text));
Properties.Settings.Default.Save();
你应该将你的名字命名为labelsText
或者您可以将label
设置更改为StringCollection
,以便
var strings = new StringCollection();
lblArray.Select(l => l.Text).ToList().ForEach(text => strings.Add(text));
Properties.Settings.Default.label = strings;
Properties.Settings.Default.Save();