protected void SavePosition(String name)
{
try
{
var rectangle =
WindowState == FormWindowState.Normal
? DesktopBounds
: RestoreBounds;
var formWindowState =
WindowState == FormWindowState.Maximized
? FormWindowState.Maximized
: FormWindowState.Normal;
var position = new WindowPosition(rectangle, formWindowState);
// Write to the user settings:
if (Properties.Settings.Default.WindowPositions == null)
Properties.Settings.Default.WindowPositions = new WindowPositionList();
Properties.Settings.Default.WindowPositions[name] = position;
Properties.Settings.Default.Save();
}
catch (ConfigurationException)
{
//TODO: howto restore a corrupted config? Properties.Settings.Default.Reset() doesn't work.
}
}