Oppure

Loading
19/03/14 16:16
uelfox
Buongiorno a tutti,
sto cercando di documentarmi per la realizzazione di un piccolo form che contiene un textbox.
Esso dovrebbe essere sempre sul desktop, e con il cursore lampeggiante, per poter sempre ricevere quello che viene battuto sulla tastiera, anche se apro altre finestre.
Come potrei risolvere?
Avete qualche soluzione?

Grazie

S.O. win7
linguaggio c#
aaa
19/03/14 17:52
nessuno
Non ho capito una questione ... tu apri Word e scrivi un documento e quello che scrivi deve andare nel tuo textbox??
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
19/03/14 21:31
uelfox
L'applicativo che voglio sviluppare, girerà su una macchina che non utilizzerà programmi di scrittura, ne mouse.
Ho bisogno che xò tutto quello che scrivo, vada sempre nel textbox.
Quindi il cursore deve essere sempre lampeggiante nel textbox, per poter ricevere l'input del testo.
aaa
20/03/14 9:10
nessuno
Se imponi il focus sempre nella textbox il testo sarà sempre nella textbox.

Se ti spieghi meglio, con TUTTI i dettagli, forse si capisce ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
20/03/14 10:36
R0gerBlack
Potresti seguire la filosofia di un Keylogger e rilevare da background i tasti premuti per poi scriverli. Poi magari a certi tasti come Backspace cancellare manualmente il testo.
Se proprio ti vuoi ingegnare potresti mettere il focus solo quando vengono premute le frecce direzionali per scorrere tra il testo.
aaa
30/03/14 15:05
uelfox
Postato originariamente da nessuno:
Se ti spieghi meglio, con TUTTI i dettagli, forse si capisce ...

E' vero, vediamo se così la situazione è più chiara:
Ho la myapp1 che gira per conto suo ed è progettata per essere utilizzata su monitor touch, perchè non prevede tastiera.
Sulla stessa macchina, ho installato "dragon naturally speaking" programma di riconoscimento vocale, che può scrivere in qualunche textbox dove viene puntato il cursore.
Io vorrei creare una form con al suo interno una textbox, dove ho il cursore sempre con il focus, così se pronuncio qualunque parola, dragon me la riporta dentro alla textbox, così poi io la possa elaborare per interagire con la myapp1.
Come posso ottenere questo?
Ri..grazie
aaa
30/03/14 22:30
R0gerBlack
Potresti intercettare l'evento del click del mouse (che dovrebbe essere richiamato anche in un evento touch), e dopo il click richiamare l'istruzione. All'inizio avevo provato qualche esperimento, tuttavia l'intercettazione dell'evento click avviene prima che la sua esecuzione finisca.: Se per esempio fai click in una finestra, scatta l'evento nel tuo programma (su cui si imposta il focus), tuttavia l'evento del click che finisce è sulla finestra. Quindi ho usato un altro metodo, un semplice timer che verifica l'unfocus e imposta il focus.

Ciò non avrà un effetto perfettamente confortevole con Windows però se ti dedichi abbastanza può dare un buon risultato

1. Per fare questo crea un oggetto Timer nel form.
2. Fai doppio click sull'oggetto Timer per inserire l'evento Tick automaticamente
3. Inserisci questo codice in Form_Load
timer1.Interval = 500; // Default 100, più è veloce (basso) questo intervallo, più l'autofocus sul form sarà veloce, ma allo stesso tempo il click perde efficacia
timer1.Start();

4. Inserisci questo nell'evento timer1_Tick
private void timer1_Tick(object sender, EventArgs e)
        {
            if (!this.Focused)
            {
                if(this.WindowState != FormWindowState.Normal) this.WindowState = FormWindowState.Normal;
                this.Activate();
                textBox1.Focus();
            }
        }


Molti potrebbero dire che questo è un utilizzo improprio di un timer, ed effettivamente lo è, tuttavia fa quello che vuoi. Non so come si comporti su un computer touch, tuttavia l'intromissione del timer nell'evento click ti vanifica certe azioni, ed è il motivo per cui ho messo Interval a 500 ms. Se lo metti più in alto potrebbe essere altresì scomodo aspettare troppo per il focus.
Dimmi se fa al caso tuo.
aaa