nella fattispecie si tratta di una AutoCompleteTextView.
autoComplete.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { return false; } });
Miei appunti liberi, senza pretesa di dire necessariamente sempre cose giuste o sensate, durante l'apprendimento e la pratica della programmazione
autoComplete.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { return false; } });
Imports System.Timers Public Class Classe Private tempo As Timer Sub New() tempo = New Timer(5000) AddHandler tempo.Elapsed, AddressOf metodo tempo.Enabled = True End Sub Sub metodo(ByVal source As Object, ByVal e As ElapsedEventArgs) MsgBox("tempo") End Sub End Class
Public Class Form1 Dim miaClasse As Classe Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load miaClasse = New Classe End Sub End ClassE funziona. Dopo 5 secondi appare la MessageBox.
Imports System.Timers Public Class Classe Public Event TimerElapsed() Private tempo As Timer Sub New() tempo = New Timer(5000) AddHandler tempo.Elapsed, AddressOf metodo tempo.Enabled = True End Sub Sub metodo(ByVal source As Object, ByVal e As ElapsedEventArgs) RaiseEvent TimerElapsed() End Sub End Classe il programma chiamante:
Public Class Form1 Dim miaClasse As Classe Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load miaClasse = New Classe AddHandler miaClasse.TimerElapsed, AddressOf TempoScaduto End Sub Sub TempoScaduto() MsgBox("tempo") End Sub End ClassE funziona ancora.
Public Class Form1
Dim miaClasse As Classe
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
miaClasse = New Classe
'AddHandler miaClasse.TimerElapsed, AddressOf TempoScaduto
End Sub
Sub TempoScaduto() Handles miaClasse.TimerElapsed
MsgBox("tempo")
End Sub
End Class
Ho "commentato" AddHandler, e ho aggiunto la clausola Handles al gestore dell'evento.Errore 1 La clausola Handles richiede una variabile WithEvents definita nel tipo che la contiene o in uno dei suoi tipi di base. C:\Users\Antonello\Documents\Visual Studio 2010\Projects\laboratorio\laboratorio\Form1.vb 7 32 laboratorioDevo dichiarare Withevents l'istanza della classe, per usare Handles.
Public Class Form1 Dim WithEvents miaClasse As Classe Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load miaClasse = New Classe 'AddHandler miaClasse.TimerElapsed, AddressOf TempoScaduto End Sub Sub TempoScaduto() Handles miaClasse.TimerElapsed MsgBox("tempo") End Sub End ClassEcco. Così funziona.
Public Event Zum()(Zum è un nome di fantasia).
Public Sub evento(ByVal sender As Object, ByVal e As SpeechRecognizedEventArgs) Handles motore.SpeechRecognized ...... RaiseEvent Zum() End Sub
Public Class Form1 Dim WithEvents mioSpeak As jacSpeak .....E nel metodo che voglio evocare in seguito all'evento Zum dell'istanza mioSpeak della classe jacSpeak uso Handles:
Sub prova() Handles mioSpeak.Zum Label1.Text =mioSpeak.risultato End SubQuesto è un primo metodo (che ricordo anche dal VB6), ma non credo proprio che sia l'unico: se l'evento della classe genera un risultato, inoltre, non so come fare, a parte il dichiarare una variabile pubblica della classe che venga modificata dall'evento (in questo caso la variabile Risultato).