Form Minimized Maximized Normal all'avvio

di il
16 risposte

Form Minimized Maximized Normal all'avvio

VBnet 2019

Mi succede ogni tanto che se si chiude un programma in MINIMIZED, dato che salva la posizione in user.config, al riavvio il programma “non si fa vedere” e riparte in MINIMIZED e anche clickando sull'icona NON si apre e non si vede la finestra del programma.

Devo per forza cancellare il user.config

Dovrei mettere nel form.load all'avvio che se è MINIMIZED forza in NORMAL ma non ci riesco completamente.

Sono riuscito a capire, trovare e vedere dove/come e perchè e vedo che salva nel suo file di user.config:

<setting name="Location" serializeAs="String">
<value>-32000, -32000</value>

che al riavvio evidentemente non si vede… non riparte nemmeno clickando sull'icona aperta.

Ho provato un po' di tutto e ho trovato che inserendo questo nel form.load:

       If Me.Location.X = -32000 And Location.Y = -32000 Then
           WindowState = FormWindowState.Normal
       End If

che funziona anche col -32000/-32000 e quindi se risulta a -32000/-32000 si riapre normalmente forzando la posizione nuova “Normal”.

Sicuramene c'è di meglio che io non conosco dato che non so se il -32000/-32000 è sempre per il minimized o anche per altro…

inoltre se metto 

if WindowState = FormWindowState.minimized then

non funziona quando è a -32000/-32000

e se provo a mettere

    Me.Location = New Point(0, 0)

per posizionarlo forzatamente a 0,0, quando all'avvio risulta a -32000/-32000 mi dice nel codice

Errore    BC30311    Non è possibile convertire il valore di tipo 'Point' in 'Point'.  

Qualche consiglio più intelligente del mio su come usare questi comandi per la problematica all'avvio?

Grazie mille

16 Risposte

  • Re: Form Minimized Maximized Normal all'avvio

    E qual'e' la problematica all'avvio?

    Non e' chiaro cosa vuoi chiedere, ed in particolar modo per che motivo il WindowState = FormWindowState.Normal  non ti aggrada

    Fai una richiesta precisa

  • Re: Form Minimized Maximized Normal all'avvio

    Puoi provare nella Load senza If con la semplice riga

    WindowState = FormWindowState.Normal
  • Re: Form Minimized Maximized Normal all'avvio

    01/09/2023 - oregon ha scritto:


    Puoi provare nella Load senza If con la semplice riga

    WindowState = FormWindowState.Normal

    Si grazie Oregon, infatti nel frattempo avevo già inserito “solo” quella linea senza l'IF nel form.load così da forzare in ogni caso sempre l'apertura in “Normal”. 

    Mi chiedevo comunque se il -32000/-32000 corrisponde al minimized?

    Difatti ogni tanto mio succedeva che pure in RUN non vedevo la finestra dell'applicazione da nessuna parte come spiegato sopra... ;-(

    ps: Per curiosità, qualcuno sa cosa sbaglio nella sintassi del location che metto nel form.load per posizionare il form all'avvio su 0,0, che con

        Me.Location = New Point(0, 0)


    mi dice 

    Errore    BC30311    Non è possibile convertire il valore di tipo 'Point' in 'Point'.  

    Grazie ciao

  • Re: Form Minimized Maximized Normal all'avvio

    https://learn.microsoft.com/en-us/office/vba/api/access.form.move#example

    Non dovresti usare move?

    Maximized è a tutto schermo

    Minimized ad icona

    Non sposta la finestra

    Per spostarla devi dare left e top

  • Re: Form Minimized Maximized Normal all'avvio

    NON FUNZIONA!

    Accidenti, purtroppo anche se nel form.load ho il 

    WindowState = FormWindowState.Normal

    sono riuscito a ricreare il problema e all'avvio non funziona se:

    1. Nella mia applicazione chiudo l'applicazione MINIMIZED
    2. tasto destro sull'icona del programma e X CHIUDI TUTTE LE FINESTRE
    3. riavvio il programma e NON si apre, resta solo l'icona nella barra applicazioni ma anche clickando non si apre
    4.  Nel USER.CONFIG in ho il -32000 -32000
    5. nel form load ho all'inizio la linea <WindowsState = FormWindowsState.Normal>
    6. ciò malgrado niente, non lo apro… 

    cancello il USER.CONFIG e riparte tranquillamente 

    il file creato a questo pro nel mysetting user.config:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
       <userSettings>
           <Programma.My.MySettings>
               <setting name="Location" serializeAs="String">
                   <value>-32000, -32000</value>
               </setting>
               <setting name="resolution" serializeAs="String">
                   <value>-1</value>
               </setting>
               <setting name="Monitor" serializeAs="String">
                   <value>0, 0</value>
               </setting>
               <setting name="Size" serializeAs="String">
                   <value>800, 450</value>
               </setting>
           </Programma.My.MySettings>
       </userSettings>
    </configuration>

    Lo cancello o cambio il -32000,-32000 con 0,0 e riparte…

    Qualche consiglio per evitare questo problema?

    Grazie.

  • Re: Form Minimized Maximized Normal all'avvio

    Aggiungo:

    se metto nel form load:

            If Me.Location.X = -32000 And Location.Y = -32000 Then MsgBox("TEST")

    il msgbox TEST esce ma non succede nulla poi, OK e anche se subito dopo ho il 

    WindowState = FormWindowState.Normal


    non viene visualizzato, è sempre solo in ICONA sulla barra…

    boh.. non ne ho idea… qualche consiglio?

  • Re: Form Minimized Maximized Normal all'avvio

    Xml????

    Ma di che cosa si sta parlando?

    Cosa c'entra un file xml con un form?

  • Re: Form Minimized Maximized Normal all'avvio

    04/09/2023 - sihsandrea ha scritto:


    Xml????

    Ma di che cosa si sta parlando?

    Cosa c'entra un file xml con un form?

    Mai sentito parlare dei mysetting e user.config descritti sopra?

    Penso proprio di no!

  • Re: Form Minimized Maximized Normal all'avvio

    04/09/2023 - AntoAnto ha scritto:


    Lo cancello o cambio il -32000,-32000 con 0,0 e riparte…

    Una domanda: ma il caricamento dei dati dal file .config in formato XML lo fai tu manualmente, oppure avviene in automatico?

  • Re: Form Minimized Maximized Normal all'avvio

    Io (e presumo non solo io) pensavo che volevi massimizzare il form all'apertura da codice, non manipolando il file di configurazione.

    Se vuoi manipolare il file di configurazione, cosa a mio avviso da non toccare:

    https://www.codeproject.com/Articles/12252/Application-settings-in-VB-NET-2-0-and-Visual-Stud

    Qui trovi alcune info.

  • Re: Form Minimized Maximized Normal all'avvio

    04/09/2023 - Alka ha scritto:

    Una domanda: ma il caricamento dei dati dal file .config in formato XML lo fai tu manualmente, oppure avviene in automatico?

    Lo fa in automatico lo salva e lo carica all'avvio, per salvare la posizione del form.

    Quindi è quello che crea VBnet2019.

    Come descritto sopra, se parto col -32000/-32000 del Minimized dalla sequenza sopra descritta, che vedo col msgbox nel form.load, non mi forza comunque il Normal 

    boh… ;-(

  • Re: Form Minimized Maximized Normal all'avvio

    04/09/2023 - AntoAnto ha scritto:


    Lo fa in automatico lo salva e lo carica all'avvio, per salvare la posizione del form. […]

    Perché non passare a un sistema di salvataggio “manuale”, così puoi controllare ciò che viene salvato (e ripristinato) e cosa no? :)

  • Re: Form Minimized Maximized Normal all'avvio

    05/09/2023 - Alka ha scritto:


    Perché non passare a un sistema di salvataggio “manuale”, così puoi controllare ciò che viene salvato (e ripristinato) e cosa no? :)

    Funzioni

    Uso già in altre applicazioni i classici iniWrite e iniLoad, ma mi piaceva l'idea di lasciarlo fare al soft, anche se lo salva in posti strani…

    Ma dato che il problema è un altro mi piaceva poterlo risolvere: infatti all'avvio nel form.load anche col my.settin/user.config intercetto tranquillamente il -32000/-32000, ma che non capisco è il perchè forzando in “Normal” non me lo genera all'avvio… forse l'automatico del my.setting in user.config lo legge dopo il form.load?

    Forse mettere il “WindowState = FormWindowState.Normal” da qualche altra parte e non nel form.load ma non saprei dove/come, oppure forzare un'altra location, ma come scritto sopra, se è in questo stato di “icona” mi sa che anche facendolo “manuale” sarebbe la stessa cosa (vedi procedura per generare il problema descritto sopra)…

  • Re: Form Minimized Maximized Normal all'avvio

    Form load

    https://learn.microsoft.com/it-it/dotnet/api/system.windows.forms.form.load?view=windowsdesktop-7.0

    Form show

    https://learn.microsoft.com/it-it/dotnet/api/system.windows.forms.form.show?view=windowsdesktop-7.0

    A te le conclusioni.

    Ma dovrebbe esserci la proprietà del form senza passare da metodi

Devi accedere o registrarti per scrivere nel forum
16 risposte