Autore Topic: [RISOLTO] LostFocus come passare il controllo ad un altro oggetto.  (Letto 947 volte)

Offline aulin

  • Gambero
  • **
  • Post: 83
    • Mostra profilo
Problema già affrontato ma faccio difficoltà a digerirlo. Utilizzo il metodo GetFocus e LostFocus su una TextBox per l'input di campi float. Se il campo numerico è l'unico da inserire, e la sub LostFocus formatta il campo, tipo Format$(NomeCampo,"000,00"),  come faccio a passare il controllo ad un bottonefacendogli eseguire il LostFocus?. Il campo di input è l'unico e solo della form(altri vengono presi da GridView).Non riesco a fargli eseguire  il LostFocus. Grazie in anticipo. Momentaneamente per farlo funzionare ho inserito un'altro campo su cui clicco e così funziona, ma è una schifezza. Help  
UBUNTU 9.1 Gambas 2.20
« Ultima modifica: 18 Maggio 2010, 16:26:02 da aulin »

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: LostFocus come passare il controllo ad un altro oggetto.
« Risposta #1 il: 18 Maggio 2010, 14:29:13 »
Non ci ho capito una cippa!  ;D

Arrivi ad allegare il sorgente?

Offline aulin

  • Gambero
  • **
  • Post: 83
    • Mostra profilo
Re: LostFocus come passare il controllo ad un altro oggetto.
« Risposta #2 il: 18 Maggio 2010, 15:41:24 »
la domanda è : come faccio a spostare il controllo su un bottone, in modo che mi esegua il LostFocus? Dovrebbe essere tipo  Bottone.GetFocus, ma dove metto questa istruzione in modo che possa essere eseguita ?


Codice: [Seleziona]
'
' Gestione campo TB_PesoModificato
'
PUBLIC SUB TB_PesoModificato_GotFocus()
        PesoModificato = PesoAttuale
         TB_PesoModificato.Alignment = Align.left
          TB_PesoModificato.text = PesoModificato
         
END

PUBLIC SUB TB_PesoModificato_KeyPress()
SELECT Key.code
    CASE Key.Enter, Key.BackSpace, Key.Delete, Key.Left, Key.Right, Key.Return, Key.space
      RETURN
  END SELECT
 
IF Key.Text LIKE "+" OR Key.Text LIKE "-" OR Key.Text LIKE "." THEN RETURN

IF NOT IsDigit(key.text) THEN
   STOP EVENT
ENDIF

END

PUBLIC SUB TB_PesoModificato_LostFocus()
        PesoModificato = Val(TB_PesoModificato.text)
           TB_PesoModificato.Alignment = Align.Right
            TB_PesoModificato.text = Format$(PesoModificato, "000.00")
END



Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: LostFocus come passare il controllo ad un altro oggetto.
« Risposta #3 il: 18 Maggio 2010, 15:47:53 »
Potresti fare cosi': finito di digitare il numero, premendo su Enter o Return attivi l'evento _Activate()

PUBLIC SUB TB_PesoModificato_Activate()
  TB_PesoModificato_LostFocus()   
END

Offline aulin

  • Gambero
  • **
  • Post: 83
    • Mostra profilo
Re: LostFocus come passare il controllo ad un altro oggetto.
« Risposta #4 il: 18 Maggio 2010, 15:59:40 »
Grazie milio in questo modo funziona, però tendo ad evitare l'utilizzo del tasto enter, si può fare lo stesso attivando un pulsante ? . Sarebbe il classico pulsante di conferma. Ringrazio per la collaborazione

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: LostFocus come passare il controllo ad un altro oggetto.
« Risposta #5 il: 18 Maggio 2010, 16:12:56 »
Bhe ma in questo caso usi l'evento Button_Click()

PUBLIC SUB TuoBottone_Click()
  TB_PesoModificato_LostFocus()   
END

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: LostFocus come passare il controllo ad un altro oggetto.
« Risposta #6 il: 18 Maggio 2010, 16:14:46 »
In teoria comunque, spostando il focus sul tasto, attiveresti l'evento _LostFocus della textbox...

Offline aulin

  • Gambero
  • **
  • Post: 83
    • Mostra profilo
Re: LostFocus come passare il controllo ad un altro oggetto.
« Risposta #7 il: 18 Maggio 2010, 16:25:29 »
OK. ora funziona. Io ritenevo che spostando semplicemente il focus su un bottone, attivasse il :lostfocus, ma non so se effettivamente fa così. Invece tu fai eseguire il _LostFocus. risolto comunque e grazie.