View Single Post
Old 02-10-2004, 19:00   #1
Mezzetti0903
Senior Member
 
Iscritto dal: Nov 2000
Messaggi: 279
[.NET]&[Win32]Intercettare il momento precedente all'acquisto del Focus

Sto realizzando una tastiera su schermo per una mia applicazione. In pratica essa funzionerà solo all'interno della Form in cui l'ho inserità! (sarà un controllo figlio della form e interagirà solo con controlli figlio di quella stessa form)

Ora la tastiera è costituita da Button...ad esempio [A] [b]
e alla pressione del tasto vorrei che il rispettivo pulsante fosse mandato al controllo selezionato nel momento in cui lo premo.

Ed ecco il problema...come faccio ad inviare la pressione al controllo giusto?

In pratica devo sapere quale controllo sia attivo al momento in cui premo il pulsante.

Io pensavo esistesse un evento che precedesse la perdita definitiva del focus(in modo da scrivermi da qualche parte quale controllo stava perdendo il focus)...ed un altro che precedesse il set del focus sul nuovo controllo(per eseguire il Send del tasto PRIMA che il vecchio controllo avesse perso il focus)..e in effetti la documentazione così mi lasciava supporre, non tanto per quanto scritto qua..

Evento Control.Leave:
Viene generato quando lo stato attivo esce dall'area del controllo.

ma per quello spiegato qua:
Gli eventi di attivazione si verificano nel seguente ordine:
1)Enter
2)GotFocus
3)Leave
4)Validating
5)Validated
6)LostFocus

detta così semprerebbe che se io intercetto l'evento leave del controllo quello non ha ancora "lostfocus"...invece non è così!!

Idee alternative? [managed e non]
(spero non mi proponiate di controllare continuamente con un timer qual è il controllo attivo nel form e scrivermelo da qualche parte perchè mi sembra lento e poco elegante)
(Mi basterebbe (magari!) una qualche api GetPreviousActiveControl

Grazie!
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero
Mezzetti0903 è offline   Rispondi citando il messaggio o parte di esso