2011-11-10 15 views
1

私はtoolstripmenuitemアイテム/コレクションをproperties.default.settingsに保存/ロードする方法をC#で教えてください。 またはxmlにシリアル化しますか?どのようなタイプのリストを使用する必要がありますか?あなたより 、Andriustoolstripmenuitemアイテム/コレクションをproperties.default.settingsに保存/ロードする方法は? (C#)

+0

StringCollection作品を。 –

+0

正確に何を保存しますか?項目名?タイプ?ポジション?すべて? – Reniuz

+0

アイテム名とアイテムテキスト。ありがとうございます – Andrius

答えて

1

さてあなたがそうのように/デシリアライズの一覧をリストに記入し、シリアライズ、名前とテキストプロパティを持つシンプルなシリアライズ可能なクラスを作成することができます。

private XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<MySaveItems>)); 
private void SerializeToFile() 
{ 
    using (MemoryStream ms = new MemoryStream(5 * 1024)) 
    { 
     List<MySaveItems> mySaveItemses = new List<MySaveItems>(); 
     foreach (ToolStripItem item in toolStrip1.Items) 
     { 
      MySaveItems mySaveItem = new MySaveItems(); 
      mySaveItem.name = item.Name; 
      mySaveItem.text = item.Text; 
      mySaveItemses.Add(mySaveItem); 
     } 
     xmlSerializer.Serialize(ms, mySaveItemses); 
     File.WriteAllBytes("c:\\ToolStripItems.xml", ms.ToArray()); 
    } 
} 

private void DeserializeFromFile() 
{ 
    using (StreamReader ms = new StreamReader("c:\\ToolStripItems.xml")) 
    { 
     List<MySaveItems> mySaveItemses; 
     mySaveItemses = (List<MySaveItems>)xmlSerializer.Deserialize(ms); 
    } 
} 

[Serializable] 
public class MySaveItems 
{ 
    public MySaveItems() 
    { 

    } 

    [XmlElement] 
    public string name { get; set; } 
    [XmlElement] 
    public string text { get; set; } 
} 
+0

Reniuz、ありがとうございます。そして、どのように私はtoolStrip1.Itemsにアイテムリストを戻すことができますか? – Andrius

関連する問題