Intercettare Pressione Invio Text Box C#

mercoledì 02 settembre 2009 - 18.56

mesco Profilo | Newbie

Ciao a tutti,
è da poco che uso C# e non riesco a intercettare la pressione del tasto invio, se faccio doppio click sulla textBox mi apre automaticamente il metodo textchanced e non il keyPress, se cerco nella barra non mi appaiono i metodi della textBox, cosa sto sbagliando?

Grazie a tutti Ciao

aiedail92 Profilo | Expert

Ciao

Per intercettare la pressione dei tasti puoi usare gli eventi KeyDown o KeyPress, quindi usare le proprietà KeyCode o KeyChar per verificare quale sia il tasto premuto:

void tuaTextBox_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter) { // Premuto il tasto enter e.Handled = true; } }

Oppure

void tuaTextBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '\r') { // Enter premuto e.Handled = true; } }

Luca

mesco Profilo | Newbie

Ciao luca,
come prima cosa grazie per l'attenzione, in secondo luogo posso dirti che il mio programma non entra mai all'interno della funzione.
non capisco perchè ma se faccio il debug e spingo un qualsiasi tasto dentro alla mia textbox non entro mai nella funzione, ne la keypress ne la keydown cosa potrebbe essere?

aiedail92 Profilo | Expert

Certo, mi ero scordato di dirti che devi associare il gestore eventi (le funzioni che hai scritto) gli eventi del controllo.

Puoi farlo in due modi:

1) Da designer: clicka sulla tua TextBox, quindi nella finestra delle proprietà, in alto, seleziona il fulmine, ti verranno mostrati gli eventi del controllo. Seleziona l'evento KeyPress o KeyDown, quindi dall'elenco dei metodi scegli quello che si addice all'evento

2) Da codice: cerca il metodo Initialize() della tua form, quindi aggiungi il gestore eventi usando questa sintassi:

controllo.NomeEvento += new TipoGestoreEvento(Funzione);

Nel nostro caso:
tuaTextBox.KeyDown += new KeyEventHandler(tuaTextBox_KeyDown); // oppure tuaTextBox.KeyPress += new KeyPressEventHandler(tuaTextBox_KeyPress);

Luca

mesco Profilo | Newbie

Luca,
grazie mille sei stato veramente troppo gentile.

ero riuscito a fare tutto quello che mi serviva anche cose piu complicate ma questa cavolata non riuscivo a farla.

grazie ancora
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5