Catturare ESC su casella combinata

di antocuomo il
6 risposte
Salve a tutti:

Il mio problema di oggi è come catturare l'intenzione di uscire da un controllo Combi in VBA senza optare per nessuna scelta.
Chiarisco meglio.
Da menù premo un pulsante e mi appare una casella combinata fino ad allora non visibile.
Nella sua lista ci sono degli oggetti che una volta scelti verrebbero cancellati per cui sono delicati.
Nel caso quindi che l'operatore voglia rinunciare, la combo deve sparire nuovamente.
Non sono riuscito a catturare per la verità nessun evento che mi facesse rilevare una possibile rinuncia : ESC, oppure un click sul campo vuoto.

Come posso fare ? Posso avere una mano?
Grazie
antonio.

6 Risposte

  • Non ho capito cosa fai quando non selezioni... secondo me il LOSTFOCUS è l'evento che può consentire di verificare... ma di fatto se non si effettua l'AFTERUPDATE è evidente che non si è fatta alcuna selezione...
  • Ciao Alex.
    Quando non seleziono vuol dire che mi sono pentito oppure ho sbagliato a risvegliare quella combo la quale deve ritornare dormiente (ovvero non visibile).
    Fatto sta che mi rimane "presente" a meno che non faccia una scelta "forzata" nella lista.
    A quanto pare neanche cliccando nel vuoto della maschera catturo un LOSTFOCUS.
    Solitamente un operatore che vuole tornare indietro fa ESC. Non c'è un modo per catturarlo nella combo?
  • Secondo me devi distinguere la selezione dalla Validazione... se non Validi resetti...
    La validazione può essere con una Domanda su AfterUpdate oppure con un Button... quello che vuoi ma devi prevedere un criterio intercettabile.
  • Ok, mi hai convinto;
    metterò un box per chiedere conferma.
    grazie Alex
    buona giornata.
  • antocuomo ha scritto:


    ...
    Non sono riuscito a catturare per la verità nessun evento che mi facesse rilevare una possibile rinuncia : ESC, oppure un click sul campo vuoto.
    ...
    Io mi sono concentrato su questo aspetto di partenza, poi valuta tu in base agli altri suggerimenti
    Private Sub CasellaCombinata7_KeyPress(KeyAscii As Integer)
    'CasellaControllo14 è la casella con la spunta che fa comparire CasellaCombinata7
    If KeyAscii = 27 Then '27 corrisponde al tasto ESC
        CasellaControllo14.Value = False 
        CasellaControllo14.SetFocus
        CasellaCombinata7.Visible = False
    End If
    
    End Sub
  • Ti ringrazio tanto Phil...
    proverò anche così.
    saluti antonio
Devi accedere o registrarti per scrivere nel forum
6 risposte