Cambiare spessore e colore bordo a sottomaschera quando è attivata

di il
4 risposte

Cambiare spessore e colore bordo a sottomaschera quando è attivata

Cioa a tutti

ho una maschera che contiene alcuni campi e una sottomaschera che puo' essere gestita con dei comandi anche da tastiera. Ovviamente questo comandi funzionano solo quando questa sottomaschera è attiva

Per una migliore gestione vorrei che quando la sottomaschera è attivatalo spessore del bordo e il suo colore evidenziati

ho provato a impostare l'evento gotfocus della sottomaschera ma vedo che non viene mai attivato quando il focus arriva su detta sottomaschera

inoltre visto che sono un po impazziato anche a cercare le proprietà del bordo maschera e del colore è possibile quanto voglio fare oppure essendo una sottomaschera perde le sue proprietà

grazie a chi riesce a darmi qualche dritta

4 Risposte

  • Re: Cambiare spessore e colore bordo a sottomaschera quando è attivata

    Innanzitutto devi capire se punti all'oggetto giusto, poi puoi provare ENTER di Container Maschera, ed EXIT per ripristinare, non ne sono sicuro però... dovrei provare.

    L'alternativa è mettere un timer nella Form e leggere il valore di ActiveControl... se uguale al SubFormContainer colori di rosso ed inspessisci.

    Se ActiveControl<>SubFormContainer ed ha come Parent la Form, togli il bordo in quanto hai attivato un controllo nella MainForm.

    Ora come vedi ho usato il concetto di SubFormContainer, perché è questo che devi gestire... e non l'oggetto Form, usata come oggetto inserito nel container, gioco di parole ma per inserire una SubForm in sostanza istanza 2 oggetti, un Container dentro il quale si istanzia una Form, che assume il ruolo di subform.

    Questo per te è trasparente ma devi saperlo.

    Il bordo del container si gestisce cosi:

    Me!NomeContainer.BorderColor=vbRed

    La subform invece che contiene una textbox cambia sintassi gerarchica cosi:

    Me!NomeContainer.Form.NomeTextBox.BorderCokor=vbRed

    Quindi fai sempre attenzione a dove sei e come operi.

  • Re: Cambiare spessore e colore bordo a sottomaschera quando è attivata

    Grazie Alex x la dritta 

    ho risolto gestendolo con il timer dalla maschera principale e testando il campo attivo.

    Sinceramente non mi fa impazzire come soluzione perche' devo abilitare evento timer e inserire la funzione di gestione in tutte le maschere che contengono questa sottomaschera. Speravo di trovare una soluzione gestendo la cosa dalla sottomaschera direttamente giocando sulle attivazioni e sulle disattivazioni.

  • Re: Cambiare spessore e colore bordo a sottomaschera quando è attivata

    Si concordo con te... prima di optare per il timer, metti dei MSGBOX con l'evento sugli eventi del Container e della SubForm per capire se qualche cosa si può fare...

    MsgBox "NomeOggetto NomeEvento"

    In questo modo quando con il mouse ti sposti vengono sparati Messaggi bloccanti che ti consentono di capire meglio, alternativa è usare il Debug.Print con una variabile dichiarata a livello di Form che si incrementa in ogni Evento... così comprendi la sequenza leggendo nella finestra immediata.

  • Re: Cambiare spessore e colore bordo a sottomaschera quando è attivata

    Qui trovi un esempio di come fare sfruttando gli eventi Enter e Exit della sottomaschera.

Devi accedere o registrarti per scrivere nel forum
4 risposte