2008-10-22 15 views
7

Estoy desarrollando una pieza en VB.NET. Dentro de mi formulario principal, estoy creando un nuevo formulario para usar como diálogo. Me preguntaba si había una forma de, al cerrar el nuevo diálogo, guardar su configuración de tamaño para cada usuario (probablemente en un archivo en su máquina, a través de XML o algo así)Guardar Windows Forma Tamaño

Respuesta

7

puede guardarlo en el archivo de configuración y actualizarlo en el evento 'onclosing'.

para realizar una configuración vaya a Propiedades del proyecto -> configuración -> luego realice una configuración como 'tamaño de cuadro de diálogo' de tipo system.drawing.size.

luego hacer esto en su forma de diálogo:

Public Sub New() 
    InitializeComponent() 
End Sub 

Public Sub New(ByVal userSize As Size) 
    InitializeComponent() 
    Me.Size = userSize 
End Sub 

Protected Overrides Sub OnClosing(ByVal e As System.ComponentModel.CancelEventArgs) 
    MyBase.OnClosing(e) 
    My.Settings.DialogSize = Me.Size 
    My.Settings.Save() 
End Sub 

hacer algo como esto para comprobar y utilizar la configuración:

Dim dlg As MyDialogWindow 
    If My.Settings.DialogSize.IsEmpty Then 
     dlg = New MyDialogWindow() 
    Else 
     dlg = New MyDialogWindow(My.Settings.DialogSize) 
    End If 
    dlg.ShowDialog() 
+0

En el diseñador para mi WinForm, que vaya a Propiedades y veo (PropertyBinding), pero no hay ninguna propiedad DialogSize que Puedo encontrar. ¿Es esto algo que configuró manualmente en código o en el diseñador? –

+0

DialogSize es un Var global que debe crear en el archivo de configuración. Proyecto Goto -> 'que NOMBRE DEL PROYECTO' Propiedades -> Configuración de tabuladores> añadir un ajuste llamado "DialogSize" o lo que te gusta de tipo System.Drawing.Size tamaño Desafortunadamente no está en el bit propertybinding – Hath

+0

Ok - Descubrí de qué hablabas y lo configuré, pero ahora cuando trato de invocarlo, obtengo una excepción ConfigurationErrorsException, diciendo que el sistema Cofniguration no se pudo inicializar. ¿Cómo voy a resolver esto? –

0

También puede hacerlo utilizando la interfaz de usuario proporcionada por el propio IDE de VB.NET. En el panel de propiedades de un formulario, busque en el elemento denominado "(Configuración de la aplicación)" y luego en "Enlace de propiedad". Puede vincular casi todas las propiedades del formulario (incluido el tamaño y la ubicación) a un valor de configuración para esa aplicación.

0

Como resultado, he encontrado una manera de hacer esto utilizando la System.IO.IsolatedStorage

+0

Interesante: ¿por qué eligió IsolatedStorage? – Keithius

+0

¿Te importa compartir tu código? –

2

Usted puede también añadir un nuevo ajuste a su aplicación (tamaño) y configurarlo para que system.drawing.size

Luego, asegúrese de guardar el tamaño actual en la configuración al cerrar.

Private Sub myForm_FormClosing(ByVal sender As System.Object, 
          ByVal e As System.Windows.Forms.FormClosingEventArgs) _ 
          Handles MyBase.FormClosing 

    My.Settings.size = Me.Size 
    My.Settings.Save() 

End Sub 

y de la carga de aplicar el tamaño que haya guardado en la configuración

Private Sub myForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
    Handles MyBase.Load 
    ' if this is the first time to load the form 
    ' dont set the size (the form will load with the size in the designe) 
    If Not My.Settings.size.IsEmpty Then 
     Me.Size = My.Settings.size 
    End If 
End Sub 
Cuestiones relacionadas