PDA

View Full Version : Domandina sul visual basic, tanto per cominciare :)


pg08x
27-02-2002, 08:37
Devo filtrare alcuni caratteri sull'input su di un comune TextBox.
Poniamo il caso banale di trasformare in maiuscolo, in vb6 scriverei:

Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

In vb.net la dichiarazione della routine che gestisce l'evento risulta essere:

Private Sub Text1_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles Text1.KeyPress

Ok, eventArgs.KeyChar restituisce il carattere non il codice ascii come in vb6, ancora meglio, ma è una proprietà di sola lettura per cui

eventArgs.KeyChar = UCase(eventArgs.KeyChar)

non può funzionare. Qualche idea ???
Grazie ;)

lufo
27-02-2002, 09:55
Originariamente inviato da pg08x
[B]Devo filtrare alcuni caratteri sull'input su di un comune TextBox.
Poniamo il caso banale di trasformare in maiuscolo, in vb6 scriverei:

Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

In vb.net la dichiarazione della routine che gestisce l'evento risulta essere:

Private Sub Text1_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles Text1.KeyPress

Ok, eventArgs.KeyChar restituisce il carattere non il codice ascii come in vb6, ancora meglio, ma è una proprietà di sola lettura per cui

eventArgs.KeyChar = UCase(eventArgs.KeyChar)

non può funzionare. Qualche idea ???
Grazie ;)
scriverlo sul LostFocus??

pg08x
27-02-2002, 10:20
Volevo filtrarlo direttamente quando l'utente lo scrive non quando passa su un altro controllo (comunque grazie) la strada potrebbe essere impostare l'evento come Handled (per evitare feedback) ed agire direttamente sulla proprietà text ma non so come riposizionare correttamente il cursore col .net.
Sull'msdn portano fuori strada parlano di gestire la cosa in una funzione utente esterna all'evento, poi c'è un bad link... ho provato a importare un codice vb6 scritto apposta che fa solo quello ma la procedura di conversione automatica scrive del codice bacato, dichiarando a vuoto una variabile con nome keyascii.
Comunque non ho fretta. Ora stò lavorando su un altro linguaggio... se qualcuno conosce winforms l'aiuto è gradito grazie a tutti ;)