Keypress

martedì 21 settembre 2004 - 13.25

sasha296 Profilo | Newbie

Scusate l'ignoranza ragazzi, ma non riesco a capira come fare.
Per bloccare l'inserimento di alcuni caratteri su un textbox come devo fare?

Ad esempio se voglio che vengano inseriti solo numeri...
In Vb si controlla il carattere e se non va bene si fa scrivere il codice 0, qui come si fa?

Grazie a tutti
mary

francescox78 Profilo | Junior Member

Mi pare che devi restituire a sender="e"
come l'evento keypressed...
prova

alextyx Profilo | Expert

Io uso questo codice x rendere solo numerica la textbox TxtNumProg:

Private Sub TxtNumProg_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNumProg.TextChanged
Me.TxtNumProg.ReadOnly = True
End Sub

Private Sub TxtNumProg_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNumProg.KeyPress
If Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar)) Then
e.Handled = True
Me.TxtNumProg.ReadOnly = True
Else
Me.TxtNumProg.ReadOnly = False
End If
End Sub

Private Sub TxtNumProg_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtNumProg.KeyDown
If e.KeyCode = Keys.Left Or e.KeyCode = Keys.Right Or e.KeyCode = Keys.Delete Then
Me.TxtNumProg.ReadOnly = False
End If
End Sub

Ricordati di selezionare esplicitamente il backcolor, oppure quando la textbox è in condizione 'ReadOnly', apparirà con lo sfondo grigio (bleah!)

Il fatto di gestirne la proprietà readonly sembra strano e inutile, ma serve ad evitare di poter inserire caratteri 'proibiti' tramite il 'copia' e 'incolla'

LeonDom Profilo | Senior Member

Puoi fare un ulteriore controllo con le espressioni regolari.

Imports system.text.regularexpression

dai ad una stringa il valore della textbox e controlli tramite il Regex se è valida in base ai tuoi parametri, se non è valida lo rispedisci a riscriverla fino a quando non è come vuoi tu.
Le espressioni regolari sono uno strumento potentissimo trovi fiumi e fiumi di roba, credo ci sia anche un articolo da qualche parte qui... ma non ricordo.

Salut....

LeonDom

sasha296 Profilo | Newbie

Grazie mille ragazzi!
Come al solito sempre informatissimi!

valix85 Profilo | Newbie

scusa ma non ho ben capito la storia del backcolor, la mia text è nvasche , cs devo fare con il back color? non esistono modi + semplici? io in vb 6 facevo il controllo semplice del tasto premuto... grazie attendo vostre risposte
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