Newsgroup: it.comp.lang.visual-basic
Titolo: Me.Location

Ciao,
 
ho impostato il controllo Location del mio form inserendolo in My.Settings
Nella form, in ApplicationSettings ho associato frmHomeLocation del My.Settings poi su chiusura form (formClosing):
My.Settings.frmHomeLocation = Me.Location
 
e in FormLoad
Me.Location = My.Settings.frmHomeLocation
 
Tutto funziona fino a che non chiudo l'applicazione mentre è ridotta a icona tramite il tasto destro del mouse (su minimize).
se la chiudo così, alla successiva apertura vedo l'app nella barra di windows ma non vedo il form sullo schermo, deduco che è in una posizione <0 o comunque in punti X e Y che non sono all'interno del monitor!
 
Come gestisco l'eventuale chiusura in modo che comunque sia non devo uscire dallo schermo?
qualcosa tipo "se X e Y sono fuori range apri a Drawing.Point (300,300)...
VB 2005 EE
 
grazie

Ho risolto o almeno ho aggirato il problema..
In pratica al riavvio (form_Load) vedo dove si trova il form e se le coordinate sono esterne al monitor riposiziono la form al centro dello schermo.
 
        'Ottengo le coordinate del centro
        Dim X_Rilevata As Single
        Dim Y_Rilevata As Single
        X_Rilevata = (Screen.PrimaryScreen.WorkingArea.Width - Me.Width) / 2
        Y_Rilevata = (Screen.PrimaryScreen.WorkingArea.Height - Me.Height) / 2
 
        'Verifico ed eventualmente riposiziono il form
        Dim isOut As Boolean = (Me.Location.X + Me.Size.Width > Screen.PrimaryScreen.WorkingArea.Width) Or (Me.Location.Y + Me.Size.Height > Screen.PrimaryScreen.WorkingArea.Height) Or (Me.Location.X < 0) Or (Me.Location.Y < 0)
 
        If isOut Then
            Me.Location = New System.Drawing.Point(X_Rilevata, Y_Rilevata)
        End If
 
Se ci sono altri modi ne prendo volentieri atto
Marco

 My.Settings.frmHomeLocation = Me.Location
 
ti converrebbe fare questo solo se la form non ï¿œ minimizzata.
 
.m
 
-- 
blog @ //
milestone.topics.it
 
 
 

 Non ci avevo minimamente pensato!!
 
In effetti, a che scopo pensare?
C'ï¿œ un NG cosï¿œ efficiente...
 
Alberto
 
 

Non ci avevo pensato...
però così facendo cosa accade se chiudo con il form ridotto?
semplicemente non salva e quindi tiene conto degli ultimi dati cioè di quelli con coordinate giuste?

 Non ci avevo minimamente pensato!!
 
In effetti, a che scopo pensare?
C'ï¿œ un NG cosï¿œ efficiente...
***************************
 
Me morto!
 
--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
 
http://www.maurogsc.eu/
 
 

 Alberto
 
Non intendevo quello...
Ho ragionato su una soluzione diversa e non mi è venuto in mente di guardare quel pezzo di codice!

 con coordinate giuste?
 
io farei cosï¿œ:
 
- ad ogni movimento della finestra "salvo" la posizione nei settings, 
ma non chiamo Save
- se la finestra si sta riducendo ad icona, smetto di salvare e prima 
che si riduca ad icona chiamo Save sui settings;
- quando la finestra si ripristina da icona ricomincio a fare tracking 
della posizione;
- quando la finestra si chiude se non ï¿œ ridotta ad icona chiamo Save;


quando la finestra si chiude se non è ridotta ad icona chiamo Save;
 
FormClosed o FormClosing?
 
grazie

 grazie


 blog @ //
milestone.topics.it
 
 
Esistono, credo di aver implementato tutto...
grazie
Marco