Problema Tasto ENTER

martedì 11 febbraio 2014 - 12.38
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows 7  |  Visual Studio Express  |  SQL Server Express

Foga92 Profilo | Newbie

Ciao a tutti,
Il mio problema è il seguente :

Ho 2 text box la prima inserisco un numero e tramite l'evento keyup, premendo ENTER (INVIO), passa alla seconda passando una serie di controlli sulla formattazione.
Ora il mio problema sorge quando, dopo aver trovato un errore nella formattazione che quindi viene evidenziato tramite il popup di una message box se si preme INVIO per confermare l'errore della text box questa continua a ritornare fino a quando: o si preme ok col mouse oppure si preme ESC

Qualcuno sa come aiutarmi?

Grazie

ridaria Profilo | Expert

>Ciao a tutti,
>Il mio problema è il seguente :
>
>Ho 2 text box la prima inserisco un numero e tramite l'evento
>keyup, premendo ENTER (INVIO), passa alla seconda passando una
>serie di controlli sulla formattazione.
>Ora il mio problema sorge quando, dopo aver trovato un errore
>nella formattazione che quindi viene evidenziato tramite il popup
>di una message box se si preme INVIO per confermare l'errore
>della text box questa continua a ritornare fino a quando: o si
>preme ok col mouse oppure si preme ESC
>
>Qualcuno sa come aiutarmi?

il tasto invio ti da problemi perché poi lo ripremi per la msg box e lui ripete il controllo sulla formattazione della text box. GIUSTO?

allora fai così, inserisci il controllo sulla formattazione della text box 1, sul focus della textbox2, ed in particolare per evitare loop al termine del controllo sulla formattazione, se c'è statao un errore, dai il messaggio con msgBox, e poi restituisci il focus alla tex 1.

Prova e fammi sapere.

CIAO



>Grazie

Riccardo D'Aria

Foga92 Profilo | Newbie

Ciao grazie per la risposta.

Ho provato in ogni modo anche a fargli fare il focus e il select su una label ma niente.

Mi spiego meglio: Se gli faccio fare la verifica e poi mi sposto su un'altra casella va tutto bene. ma se io inserisco il comando select per fare in modo che mi riselezioni ancora quella, li sorge il dramma....
Ho provato a selezionarla dopo la chiamata del metodo, anche dopo la message box ma niente da fare continua a ripresentarsi la message box all'infinito . In sostanza funziona tutto bene se poi non devo riselezionare la TB in questione.

Grazie

P.S. Per verificare la valità del contenuto nella Text Box uso il Tryparse.Int32(<nome TB>) assegnando il valore ad una variabile bool conversione valida, successivamente se questa è vera prosegue l'esecuzione normale del programma altrimenti scatta la cancellazione del contenuto e il riselezionamento della TB. Tutto questo all'interno di un blocco Try che così facendo riesce ad intercettare l'eccezzione System.FormatException e anche in questo caso le azione che copie sono il cancellamento del contenuto e la riselezione con i MessageBox

Tutto quello sopra descritto è all'interno di un metodo void che viene richiamato con l'evento Enter sulla 2 TextBox

Grazie

ridaria Profilo | Expert

avevo suggerito di fare il controllo nell'evento focus della 2° text box.

Hai fatto così?

Se fai così, quando rida il focus alla 1° text box non può ripartirti il controllo, dal momento che parte solo al focus della 2° text box

Fammi sapere
Riccardo D'Aria

Foga92 Profilo | Newbie

Evento focus? Non riesco a trovarlo. Io utilizzo Visual Studio 2012 e l'unico evento che ho trovato utilizzabile è stato "Enter".

Riusciresti a postarmi un esempio?

Grazie

ridaria Profilo | Expert

>Evento focus? Non riesco a trovarlo. Io utilizzo Visual Studio
>2012 e l'unico evento che ho trovato utilizzabile è stato "Enter".
>
>Riusciresti a postarmi un esempio?

Private Sub TextBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.GotFocus
If TextBox1.Text <> "4321" Then
TextBox1.Focus()
MsgBox("dati errati")

End If
End Sub

Eccolo fammi sapere


>Grazie

Prego

Riccardo D'Aria

Foga92 Profilo | Newbie

Ma questo codice è in c#? Visual studio non mi accetta il sub... sembra codice VB o sbaglio?

ridaria Profilo | Expert

si è vb, puoi semplicemente tradurlo in c dal seguente sito:

http://www.carlosag.net/tools/codetranslator/

Ciao fammi sapere


Riccardo D'Aria

Foga92 Profilo | Newbie

Ho provato ma non succede nulla.

Ho impostato l'evento KeyUp con ENTER sulla prima text box che imposta semplicemente il focus e la selezione sulla seconda ma l'evento non parte, non viene nemmeno preso in considerazione.

ridaria Profilo | Expert

il key up e enter non c'entrano nulla.

Se vuoi controllare la formattazione di txt1 quando la lasci ed in particolare quando passi alla text 2, enter e keyUp non c'entrano nulla.

Usa il codice che ti ho passato,chiaramente devi metterlo nell'evento gotFocus della text 2.

Fammi sapere
Riccardo D'Aria

Foga92 Profilo | Newbie

Ho risolto:

Il problema era l'evento KeyUp.....

Praticamente appena premevo il tasto enter confermava la text box e nel momento in cui lo rilasciavo ripartiva l'evento di verifica della validità ma trovando la casella vuota entrava in un loop. mi è bastato modificare l'evento da keyup a keydown

Grazie lostesso
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5