public static void RestoreFormPlacement(RegistryKey key, Form form, string name)
{
Rectangle? rect = key.GetRectangleValue(name);
if (rect.HasValue)
{
Rectangle formBounds = rect.Value;
if (!form.IsMdiChild)
{
formBounds = EnsureFitsInDesktop(formBounds);
}
form.WindowState = FormWindowState.Normal;
form.SetDesktopBounds(formBounds.X, formBounds.Y, formBounds.Width, formBounds.Height);
}
FormWindowState? state = key.GetWindowStateValue(name);
if (state.HasValue)
{
form.WindowState = state.Value;
}
}