Articles in this section
Category / Section

How to serialize and de-serialize properties of WinForms SplitContainerAdv?

1 min read

Serialization and Deserialization

This article describes, how to perform serialization and deserialization on the properties of SplitContainerAdv, since SplitContainer control doesn’t have built-in StatePersistence support. For instance, we have serialized and deserialized the values of SplitterDistance and BackgroundColor properties of SplitContainerAdv. The following code examples explains the same, 

Method to serializing the values of SplitContainerAdv:

public void LoadSplitContainer(string filename)
{
  string path = @"\" + filename;
  if (File.Exists(filename))
  {                
    FileStream stream = new FileStream((Environment.CurrentDirectory + path), FileMode.Open);
    XmlTextReader reader = new XmlTextReader(stream);
    XmlSerializer serializer = new XmlSerializer(typeof(List<SplitContainerAdvSettings>));
    List<SplitContainerAdvSettings> savedsettings = (List<SplitContainerAdvSettings>)serializer.Deserialize(reader);
    foreach (var settings in savedsettings)
    {
      this.splitContainerAdv1.SplitterDistance = settings.SplitterDistance;
      this.splitContainerAdv1.BackgroundColor = settings.SplitterBackColor;
    }
  }
}

Method to deserialize the values of SplitContainerAdv:

public void SaveSplitContainer(string filename)
{
  string path = @"\" + filename;
  List<SplitContainerAdvSettings> settingsList = new List<SplitContainerAdvSettings>();
  SplitContainerAdvSettings s_settings = new SplitContainerAdvSettings();
  s_settings.SplitterBackColor = this.splitContainerAdv1.BackgroundColor;
  s_settings.SplitterDistance = this.splitContainerAdv1.SplitterDistance;
  settingsList.Add(s_settings);
 
  using (XmlTextWriter writer = new XmlTextWriter(Environment.CurrentDirectory + path, Encoding.UTF8))
  {
    writer.Formatting = Formatting.Indented;
    XmlSerializer serializer = new XmlSerializer(typeof(List<SplitContainerAdvSettings>));
    serializer.Serialize(writer, settingsList);
  }
}

SplitContainerAdvSettings.cs:

[XmlRoot("Root")]
public class SplitContainerAdvSettings
{
  [XmlElement("Distance")]
  public int SplitterDistance
  {
    get;
    set;
  }
  [XmlElement("BackColor")]
  public BrushInfo SplitterBackColor
  {
    get;
    set;
  }
}

C#: https://www.syncfusion.com/downloads/support/directtrac/general/ze/SplitContainer_StatePersistence_Sample766616685.zip

VB: https://www.syncfusion.com/downloads/support/directtrac/general/ze/SplitContainer_StatePersistence_VB467219905.zip

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied