Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [VB6] scrivere obbligatoriamente in maiuscolo all'interno di una textbox

    Buon giorno a tutti

    Oggi mi trovo di fronte al seguente problema:
    ha una form contente varie textbox, combo, option button, girandole, trikketrak... :-)
    Una di queste textbox dovrà contenere il codice fiscale di una persona, per cui vorrei che quando l'utente scive dentro a questa casella ci scriva obbligatoriamente in maiuscolo.

    Qual'è il barbatrucco per effettuare questo artifizio.


    Saluti e grazie a tutti

  2. #2
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    all'evento change della txtbox sostituisci il testo con il suo UCASE

    codice:
    txtbox.text = UCase(txtbox.text)
    potresti lavorare anche sui keyascii dei tasti ma mi pare assai più scomodo

  3. #3

    funziona parzialemente :-/

    in effetti ora scrive in maiuscolo però non scrive correttamente. Il cursore infatti rimane sempre all'inizio della casella di testo per cui se volessi scivere MAURIZIO invece mi trovo scitto OIZIRUAM.

    Come posso risolvere?

  4. #4
    Puoi optare per due soluzione.

    Uno sul lostFocus dell'elemento dove applichi la sintassi precedente oppure utilizzi quello di prima ma sposti il cursore alla fine ogni volta che fai un change

    codice:
        Private Sub Text1_Change()
          Text1 = UCase(Text1)
          Text1.SelStart = Len(Text1)
        End Sub
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  5. #5
    OK vi ringrazio :-)



  6. #6
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, ci sarebbe un modo più elegante con le api..
    codice:
    Private Declare Function SetWindowLong Lib "User32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "User32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    
    Private Const ES_UPPERCASE As Long = &H8&
    Private Const GWL_STYLE As Long = (-16)
    
    Private Sub SetMaiuscolo(tHwnd As Long)
       SetWindowLong tHwnd, GWL_STYLE, (GetWindowLong(tHwnd, GWL_STYLE)) Or ES_UPPERCASE
    End Sub
    
    Private Sub Form_Load()
       SetMaiuscolo Text1.hwnd
    End Sub
    Jupy

  7. #7
    Ciao.
    Oltre ai suggerimenti degli altri amici potresti utilizzare anche una di queste soluzioni:

    1) sfruttare l'evento "Validate()" che ti permette di anche di verificare se il campo è vuoto e, se tutto è regolare, convertire subito in maiuscolo quanto digitato:

    codice:
    Private Sub Text1_Validate(Cancel As Boolean) 
       If Text1.Text = Space(0) then
          ' Qui un tuo eventuale messaggio di errore
          Text1.SetFocus: Cancel = True
       Else
          Text1.Text = UCase(Text1.Text)
       End If
    End Sub

    2) la soluzione migliore, almeno secondo il mio punto di vista attesa la tua esigenza di gestire un codice fiscale, è quella di inserire nel tuo progetto il controllo "Masked Edit Box" dove, settando opportunamente la proprietà "Mask" puoi gestire al meglio la stringa del codice fiscale proprio per le sue particolari proprietà (le prime 6 lettere sono caratteri, poi due caratteri sono numeri ecc.).

    Fammi sapere.

    Giulio C. - Roma

  8. #8
    Ciao Giulio,
    innazitutto vorrei ringraziarti per essere intervenuto.

    L'idea del Validate non è male anche se io non ho un campo cod.fosc. non è obbligatorio per cui alla fine il suo utilizzo risulta il medesimo di LostFoscs.

    Mentre usare il controllo Maskededitbox è una cosa molto interessante. Non conosco questo controllo ma come si fa ad attivalo sulla barra degli strumenti?

    Grazie

  9. #9
    La cosa più semplice:

    Nell'evento KeyPress del TextBox

    KeyAscii = Asc(UCase$(Chr$(KeyAscii)))

  10. #10

    socket2000 ha fatto centro :-)

    ciao socket2000 la tua soluzione mi paice moltissimo, ho adottato quella.

    Per i prossimi lavori terro sicuramente in considerazione gli ottimi spunti suggerite da GiulioC. I questo caso non sono previsti controlli sulla correttezza del codice fiscale ma l'uso della Maskededitbox è sicuramente una cosa che devo imparare perchè sono sicuro che mi tornerà molto utile.

    Grazie infinite a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.