2013-04-03 64 views
0

我有標籤的數組,我要保存此標籤的文本,以便當窗體加載相同的信息被加載在同一標籤保存數組中的屬性設置返回的最後一個對象只

這代碼:

for (int i = 0; i < count; ++i) 
    { 
     Properties.Settings.Default.label = lblArray[i].Text; 
     Properties.Settings.Default.Save(); 
    } 

繼續覆蓋最後一個對象,因爲該屬性不是數組的自身。數組是否已經存在,因此數據被保存並正確加載?

UPDATE

RE:(下面給出的答案)

再次加載:

for (int i = 0; i < countHeadWaiters; ++i) 
      { 
       lblHeadWaiterHours[i].Text = Properties.Settings.Default.label[i]; 
      } 

,但不會返回任何

回答

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(); 
+0

我明白這一點,但我要如何防止這一點。我試圖給它一個整個數組,但它抱怨,它不能將字符串[]轉換爲字符串 – aKola

+0

@aKola如果你想存儲數組作爲一個字符串,你需要加入它。你有多行標籤? –

+0

否我在每個要重新加載的標籤上都有一行文字。每個標籤的文本都不同,我希望重新加載相同的狀態 – aKola

相關問題