Ciao, una domanda forse banale ... poter rilevare se viene spostata nello schermo la MainForm del programma ... cosi da memorizzare la nuova posizione e alla riapertura riposizionarla.
Qui le cose sono due: o avevo troppo sonno e non ho letto l'ultima parte della tua frase (quella riguardante il memorizzare la posizione del form in modo da poterla ripristinare al prossimo avvio) oppure l'hai aggiunta dopo (propendo per la prima ipotesi
).
Avevo capito che a te servisse intercettare il movimento del form, istante per istante, da parte dell'utente.
Per il tuo scopo, invece, la cosa è molto semplice:
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
' Da usare per qualunque preferenza utente.
Private mapPref As Map
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
'MainForm.RootPane.LoadLayout("Layout1") 'Load the layout file.
mapPref.Initialize
If File.Exists(File.DirApp, "Pref.map") Then
mapPref = File.ReadMap(File.DirApp, "Pref.map")
End If
MainForm.WindowLeft = mapPref.GetDefault("MainLeft", 200)
MainForm.WindowTop = mapPref.GetDefault("MainTop", 200)
MainForm.WindowWidth = mapPref.GetDefault("MainWidth", 600)
MainForm.WindowHeight = mapPref.GetDefault("MainHeight", 400)
MainForm.Show
End Sub
Sub MainForm_Closed
mapPref.Put("MainLeft", MainForm.WindowLeft)
mapPref.Put("MainTop", MainForm.WindowTop)
mapPref.Put("MainWidth", MainForm.WindowWidth)
mapPref.Put("MainHeight", MainForm.WindowHeight)
File.WriteMap(File.DirApp, "Pref.map", mapPref)
End Sub
[Nota: sarebbe meglio usare delle costanti, sia per il nome del file, "Pref.map" sia, soprattutto, per le chiavi, che qui sono soltanto le coordinate e le dimensioni del MainForm (le varie: "MainLeft", "MainTop", ...) ma potrai aggiungerci tutte le preferenze dell'utente]