[WPF] TextBox limitare l'inserimento di alcuni carratteri

lunedì 23 marzo 2009 - 11.08

danpres Profilo | Newbie

salve a tutti,

come faccio a limitare l'inserimento di alcuni caratteri nei textbox ?
sto utilizzanto VS2008 con WPF, e l'evento keypress non esiste :(

Devo poter inserire solo Maiuscole e Numeri. No spazi, simboli e minuscole...

in Keydown, mi dice la lettera premuta ma nn riesco a sapere se è maisucola o minuscola...

siete per caso incappati in questa cosa pure voi ??

Jeremy Profilo | Guru

Ciao danpres.
Potresti impostare la proprietà CharcterCasing = Upper.

Facci sapere...
Ciao

danpres Profilo | Newbie


grazie mille jeremy,

ho risolto in questo modo, anche se non è proprio quello che mi aspettavo di fare...


Dim CaratteriAmmessi As Regex = New Regex("^[0-9A-Z\/\*\-\+\.]*$")
Dim cValorePrecedente As String = Nothing
Dim selStart As Integer = 0
Dim selLength As Integer = 0

Private Sub TextBox1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Input.KeyEventArgs) Handles TextBox1.PreviewKeyDown
cValorePrecedente = TextBox1.Text
selStart = TextBox1.SelectionStart
selLength = TextBox1.SelectionLength
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.TextChangedEventArgs) Handles TextBox1.TextChanged
If (Not CaratteriAmmessi.IsMatch(TextBox1.Text)) Then
TextBox1.Text = cValorePrecedente
TextBox1.SelectionStart = selStart
TextBox1.SelectionLength = selLength
End If
End Sub

prima di tutto ho impostato la proprietà CharacterCasing="Upper" nello xaml come hai detto tu, poi con l'espressione regolare verifico che il testo scritto sia valido, con l'evento PreviewKeyDown mi salvo i valori attuali del campo e nell'evento TextChanged rimetto il valore precedente se il testo non va bene.

che ne dite ?
consigliate soluzioni migliori ?
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