none
[VB 2010] Intercettare il tasto X di chiusura del form RRS feed

  • Domanda

  • So che è già stato chiesto, ma non come quello che intendo io.

    Non voglio saperlo per non poter far chiudere un form, né per avviare alcuni eventi particolari (per quello ci sono già FormClosing e FormClosed), ma voglio sapere

    come intercettare la pressione del tasto "X" della ControlBox per inserire una MsgBox di conferma di chiusura.

    Infatti, se lo facessi con l'evento FormClosing, si creerebbe un ciclo continuo simile a questo:

    ChiusuraForm --> Scatta FormClosing --> MsgBox --> MsgBox chiude il form --> Scatta FormClosing e così via, in un ciclo continuo.


    • Modificato System_ martedì 28 agosto 2012 06:50 Modifica grafica
    martedì 28 agosto 2012 06:48

Risposte

  • Ciao -frenci2012-,

    You wrote on 28/08/2012 :

    So che è già stato chiesto, ma non come quello che intendo io.

    Non voglio saperlo per non poter far chiudere un form, né per avviare alcuni eventi particolari (per quello ci sono già FormClosing e FormClosed), ma voglio sapere

    come intercettare la pressione del tasto "X" della ControlBox per inserire una MsgBox di conferma di chiusura.

    Infatti, se lo facessi con l'evento FormClosing, si creerebbe un ciclo continuo simile a questo:

    ChiusuraForm --> Scatta FormClosing --> MsgBox --> MsgBox chiude il form --> Scatta FormClosing e così via, in un ciclo continuo.

    No, non è vero. FormClosing è il posto giusto senza generare nessun ciclo infinito. La dialog del messagebox è bloccante e non verrà rieseguito FormClosing.

    .m



    blog @ //milestone.topics.it
    • Proposto come risposta Carmelo La Monica martedì 28 agosto 2012 08:33
    • Contrassegnato come risposta Irina Turcu lunedì 3 settembre 2012 14:43
    martedì 28 agosto 2012 06:51

Tutte le risposte

  • Ciao -frenci2012-,

    You wrote on 28/08/2012 :

    So che è già stato chiesto, ma non come quello che intendo io.

    Non voglio saperlo per non poter far chiudere un form, né per avviare alcuni eventi particolari (per quello ci sono già FormClosing e FormClosed), ma voglio sapere

    come intercettare la pressione del tasto "X" della ControlBox per inserire una MsgBox di conferma di chiusura.

    Infatti, se lo facessi con l'evento FormClosing, si creerebbe un ciclo continuo simile a questo:

    ChiusuraForm --> Scatta FormClosing --> MsgBox --> MsgBox chiude il form --> Scatta FormClosing e così via, in un ciclo continuo.

    No, non è vero. FormClosing è il posto giusto senza generare nessun ciclo infinito. La dialog del messagebox è bloccante e non verrà rieseguito FormClosing.

    .m



    blog @ //milestone.topics.it
    • Proposto come risposta Carmelo La Monica martedì 28 agosto 2012 08:33
    • Contrassegnato come risposta Irina Turcu lunedì 3 settembre 2012 14:43
    martedì 28 agosto 2012 06:51
  • E invece, stranamente, il ciclo si crea, però sai come ho risolto?

    Nella msgbox alla scelta di vbNo ho messo e.Cancel=True, così se preme No non succede niente, ed il bello è che sotto vbYes non c'è niente, così il form si chiude senza creare alcun ciclo.

    Comunque grazie mille della risposta.

    Che bello, ho risolto un dubbio che mi tormentava da mesi, e per di più da solo: che soddisfazione!

    Si può chiudere.


    • Modificato System_ martedì 28 agosto 2012 07:02 Aggiunta conferma chiusura
    • Proposto come risposta Carmelo La Monica martedì 28 agosto 2012 08:33
    martedì 28 agosto 2012 07:02
  • Ciao -frenci2012-,

    You wrote on 28/08/2012 :

    E invece, stranamente, il ciclo si crea, però sai come ho risolto?

    Nella msgbox alla scelta di vbNo ho messo e.Cancel=True, così se preme No non succede niente, ed il bello è che sotto vbYes non c'è niente, così il form si chiude senza creare alcun ciclo.

    bhe...questo è ovvio bastava leggere la documentazione di FormClosing e degli arguments che ti vengono passati.

    .m



    blog @ //milestone.topics.it
    martedì 28 agosto 2012 07:21