Salve a tutti
ho una form che attraverso un bottone richiama altra form. Vorrei che all'uscita della form figlio, il TAB sia su una textbox specifica, e il cursore alla fine del testo della textbox.
Come posso fare?
Salve a tutti
ho una form che attraverso un bottone richiama altra form. Vorrei che all'uscita della form figlio, il TAB sia su una textbox specifica, e il cursore alla fine del testo della textbox.
Come posso fare?
se il tuo controllo è Text1 devi scrivere, nell'evento unload del secondo Form:
codice:Private Sub Form_Unload(Cancel As Integer) Form1.Text1.SetFocus Form1.Text1.SelStart = Len(Form1.Text1.Text) End SubBoolean
in questo modo mi da errore su setfocusPrivate Sub Form_Unload(Cancel As Integer)
Form1.Text1.SetFocus
Form1.Text1.SelStart = Len(Form1.Text1.Text)
End Sub
ma all'uscita del Form figlio, il form padre è visibile?
Boolean
Per avere un'idea precisa delle interazione tra gli eventi dei due form, devi mostrare tutto il codice che hai usato per ambedue i form ...
Cosi' si evitano incomprensioni e si risolve prima ...
d'accordissimo con Oregon
Boolean
si si, è visibile
se scrivo così non mi da errore
è come se il SetFocus deve essere eseguito dopo l'Unload e non al suo internocodice:Private Sub Command1_Click() Unload Me Form1.Text1.SetFocus End Sub
Ora il prob è come faccio a fare lo stesso con la chiusura della Form attraverso la 'X' in alto a destra?
Codice del padre Form1 che chiama, attraverso pressione di un bottone, il figlio Form2
Nel caricamento del Form2 nessun problemacodice:Private Sub cmdNote_Click() If CheckCont.Value = "1" Then msgNote Else frmForm2.Show vbModal End If End Sub
questo invece è il codice di quando chiudo il Form2 e ritorno al Form1
codice:Private Sub Form2_Unload(Cancel As Integer) Form1.txtFields(7) = txtFields(1) 'Form1.txtFields(7).SetFocus End Sub
il "problema" sta nel fatto che il form figlio è modale.
questo gli impedisce di portare il focus al form chiamante durante il suo evento unload.
è possibile risolvere, come hai fatto, facendo seguire all'istruzione di Unload le istruzioni per portare il fosus sul textbox del form1, ma questo non è possibile per quanto riguarda la chiusura con la X, dopo la quale non può essere eseguito alcun codice.
quello che puoi fare è disabilitare la X di chiusura, obbligando l'utente a premere il pulsante da te previsto per la chiusura del form, o in alternativa, chiamando il form in maniera non modale.
Boolean
Un'altra alternativa potrebbe essere questa:
codice:'Form1 Private Sub cmdNote_Click() If CheckCont.Value = "1" Then msgNote Else frmForm2.Show vbModal txtFields(7).SetFocus txtFields(7).SelStart = Len(txtFields(7).Text) End If End Sub 'Form2 Private Sub Form2_Unload(Cancel As Integer) Form1.txtFields(7) = txtFields(1) End Sub![]()
Jupy