Mi otra opción es escribir más código personalizado en la configuración de la aplicación y ejecutarlo en formLoad y formClosed. Esto no usa el enlace de datos.
inconvenientes:
- Más código para escribir.
- Muy inquieto. El orden en que configuras las propiedades en formLoad es confuso. Por ejemplo, debe asegurarse de haber configurado el tamaño de la ventana antes de establecer la distancia del divisor.
En este momento, esta es mi solución preferida, pero parece que es demasiado trabajo. Para reducir el trabajo, creé una clase WindowSettings que serializa la ubicación de la ventana, el tamaño, el estado y cualquier posición del divisor en una sola configuración de aplicación.Luego puedo crear una configuración de ese tipo para cada formulario en mi aplicación, guardar al cerrar y restaurar al cargar.
Publiqué the source code, incluyendo la clase WindowSettings y algunos formularios que lo usan. Las instrucciones para agregarlo a un proyecto se incluyen en el archivo WindowSettings.cs. La parte más complicada fue descubrir cómo agregar una configuración de aplicación con un tipo personalizado. Elige Browse ... en el menú desplegable de tipo, y luego ingresa manualmente el espacio de nombre y el nombre de clase. Los tipos de su proyecto no aparecen en la lista.
Actualización: Agregué algunos métodos estáticos para simplificar el código repetitivo que agrega a cada formulario. Una vez que haya seguido las instrucciones para agregar la clase WindowSettings a su proyecto y crear una configuración de aplicación, aquí hay un ejemplo del código que debe agregarse a cada formulario cuya posición desea registrar y restaurar.
private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
{
Settings.Default.CustomWindowSettings = WindowSettings.Record(
Settings.Default.CustomWindowSettings,
this,
splitContainer1);
}
private void MyForm_Load(object sender, EventArgs e)
{
WindowSettings.Restore(
Settings.Default.CustomWindowSettings,
this,
splitContainer1);
}
¡Gran código de muestra! –
Desafortunadamente, la licencia del proyecto donkirkby bajo el cual está limitada la muestra puede no permitir un simple uso libre del código. Considere volver a publicarlo aquí. –
Ahora he cambiado a la licencia de MIT; No quise restringir el uso del código. Por supuesto, se agradece la atribución. El código es un poco largo para publicar aquí. –