04/10/11 21:14
Il codice è solo quello che hai mostrato?
Non c'e' altro codice?
Quello dell'evento change lo hai eliminato?
04/10/11 21:31
karl93
Il codice è solo quello...e poi si l'evento change l'ho eliminato. Ho sbagliato?
aaa
04/10/11 21:50
Hai fatto bene ... ma se il codice è solo quello, funziona. E deve funzionare anche a te.
P.S. Ma nel file che ho scaricato c'è una cartella MACOSX ... cosa c'entra?
Ultima modifica effettuata da 04/10/11 21:51
04/10/11 21:59
karl93
Il progetto l'ho inviato da un Mac...e quello è un file che crea il Mac quando si comprime qualcosa...non è niente di eccezionale.
Comunque è strano...a me il caret si sposta prima dopo aver inserito la prima lettera. Domani provo a creare nuovamente il progetto e controllo. A domani.
Per il momento ancora grazie mille...gentilissimo
Ultima modifica effettuata da karl93 04/10/11 22:00
aaa
06/10/11 0:53
TermYnator
Dunque, potresti provare questo codice, che ho scritto per la funzione che descrivi. Consente di cancellare, e nel caso di inserimento di uno spazio, ottenere la maiuscola anche per la seconda parola.
Il codice va inserito in un modulo di classe, devi quindi dichiarare una variabile nel form, e poi associargli la casella di testo.
Esempio:
'in un modulo di classe (ad esempio "Uppercase.cls")
Option Explicit
Public WithEvents TextTxt As TextBox
Private Sub TextTxt_KeyPress(KeyAscii As Integer)
Dim Testo As String, Start As Long, Tx As String
On Error GoTo errore:
Testo = TextTxt.Text
Start = TextTxt.SelStart
If KeyAscii = 8 Then Exit Sub
Select Case Start
Case 0
If (KeyAscii > 96 And KeyAscii < 123) Or (KeyAscii > 191 And KeyAscii < 224) Then
KeyAscii = KeyAscii - 32 'E una minuscola, quindi la trasforma in una maiuscola
ElseIf (KeyAscii > 64 And KeyAscii < 91) Or (KeyAscii > 191 And KeyAscii < 224) Then
Else
KeyAscii = 0 'Accetta solo lettere minuscole e maiuscole
End If
Case Else
If (KeyAscii < 47 And (KeyAscii <> 32 And KeyAscii <> 40 And KeyAscii <> 41)) Or _
(KeyAscii > 57 And KeyAscii < 65) Or (KeyAscii > 122 And KeyAscii < 192) Then
KeyAscii = 0 'Sono consentiti: (,),_,(space),[,],
Exit Sub
End If
Tx = Mid$(Testo, Start, 1) 'Fissa il carattere a Sx del cursore .
If (Tx = " ") Then ' Se a sx del cursore ci sono " " .
If ((KeyAscii > 96) And (KeyAscii < 123)) Then 'Il carattere è una lettera m
KeyAscii = KeyAscii - 32 'Quindi la trasforma in una lettera maiuscola
End If
End If
End Select
Exit Sub
errore:
End Sub
'Nel form dell'applicazione:
Private Testo1 as Uppercase
private sub Form_Load()
set Testo1=new Uppercase 'Sempreche, si sia chiamata la classe Uppercase.cls
Set Testo1.TextTxt=text1 'dove text1 è il nome del controllo da associare
end sub
Ultima modifica effettuata da TermYnator 06/10/11 0:59
aaa