Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET]Bloccare evento tasto invio per andata a capo
Forum - C# / VB.NET - [VB.NET]Bloccare evento tasto invio per andata a capo

Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 14:33
Mercoledì, 14/07/2010
Ciao a tutti sto sviluppando un software di messaggistica, stile MSN, ho dato ad una textbox il controllo della pressione del tasto invio, la quale pressione invia il messaggio al destinatario, il problema è che essendo in una textbox dopo la pressione di questo tasto, mi trovo nel secondo rigo, come se fossi andato a capo, ho creato una soluzione sporca, attraverso un thread parallelo che controlla quando la textbox è vuota e quindi svuota la textbox portandomi il cosiddetto "trattino lampeggiante" al primo rigo. E' possibile risolvere questo problema in un modo più pulito???

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:11
Mercoledì, 14/07/2010
Testo quotato

Postato originariamente da oretovalley:

Ciao a tutti sto sviluppando un software di messaggistica, stile MSN, ho dato ad una textbox il controllo della pressione del tasto invio, la quale pressione invia il messaggio al destinatario, il problema è che essendo in una textbox dopo la pressione di questo tasto, mi trovo nel secondo rigo, come se fossi andato a capo, ho creato una soluzione sporca, attraverso un thread parallelo che controlla quando la textbox è vuota e quindi svuota la textbox portandomi il cosiddetto "trattino lampeggiante" al primo rigo. E' possibile risolvere questo problema in un modo più pulito???



se la textbox è multiline l'invio è un invio, quindi ti fa andare a capo.
devi scegliere un altro tasto oppure togliere il multiline.


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:33
Sabato, 17/07/2010
Dato che devi usare un thread separato per controllare se il cursore è a capo, presumo che l'invio venga effettivamente ricevuto dal controllo dopo l'invio del messaggio (in cui, suppongo, tu imposti il testo a Nothing o a una stringa vuota). Questo mi fa pensare che usi un evento preventivo, come KeyDown e PreviewKeyPress, che avviene dopo la rilevazione dell'input ma prima che questo giunga al controllo. In entrambi i casi puoi usare e.Cancelled = True oppure e.RaiseKeyPress = False (o qualcosa del genere).


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote