Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Gestire le TextBox... un aiuto

    Un saluto a tutti i lettori di questo fantastico forum. Il problema che vorrei sottoporre all'attenzione di tutti è legato ad un argomento molto semplice, le textbox.
    Quello che vorrei capire è come si possono ottenere i seguenti risultati:
    1) permettere ad esempio, l'inserimento di sole cifre in una textBox
    2) permettere il passaggio da una textbox all'altra battendo un determinato tasto che non sia il TAB (l'invio per esempio)
    3) impostare la textbox in maniera tale che formatta l'immissione come se fosse una valuta o una data con tnto di punti di separtazione o di barre nel caso di date
    4) far si che quando si comincia a scrivere qualcosa nella textbox, il contenuto precedente venga cancellato completamente.
    5) stabilire un numero massimo di caratteri che possono essere inserite in una textbox
    6) ho notato che nella textbox standard (senza particolari modifiche delle proprietà) non è possible sovrascrivere un carattere per volta sopra un testo già presente nella textbox stessa.
    Tutte questo è importante per ridurre errori in fase di immissione dei dati. In clipper, linguaggio dal quale provengo, esistono comandi specifici che permettono tutto ciò.
    Capisco che per un esperto in VB potrebbe essere addirittura una "rottura" rispondere ad un quesito del genere, ma vi prego datemi una dritta in quanto mi sono arenato in questa problematica per me molto importante al fine della realizzazione che ho in mente.
    Un ringraziamento anche a quelli che non potranno darmi delucidazioni in merito e a buon rendere....
    Gabriele - Potenza
    Chi si ferma è perduto...

  2. #2
    ok con calma vediamo di rispondere a tutto:

    1) bisogna controllare cosa scrive l'utente o quando si sposta dalla text box, quindi sull'evento LostFocus dell'oggetto, o mentre scrive, quindi sull'evento Change.

    2) devi intercettare il tasto premuto con l'evento KeyPress; se il tasto è quello che vuoi tu, ad esempio la letteraa "A" passi il focus all'altra textbox.

    3)___

    4) dovresti intercettare il nuovo carattere, pulire la text box e poi rimettere al suo posto il nuovo carattere che ti sei precedentemente memorizzato in una variabile.

    5) esiste la proprietà maxleght della text box.

    6) ___



    spero di essere stata almeno un pochino chiara. a quest'ora non connetto quasi più...

    ...a domani.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    una bella fila di domande
    in pratica un programmino belle fatto.

    cmq ho realizzato qualcosa del genere con circa 130 text collegate ad db.

    ora se ti posto il codice è un casino

    per le sole cifre in keypress

    NumerInt = False
    If ValAscii = vbKeyBack Or ValAscii = vbKeyTab Or ValAscii = vbKeyReturn Then Exit Function
    If ValAscii < 48 Or ValAscii > 57 Then NumerInt = True ' accetta cifre 0 e 9.

    per passare da una text all'altra intercetti il tasto invio in keypress

    If KeyAscii = 13 Then
    KeyAscii = 0 ' evitare il beep
    Else
    SendKeys "{Tab}" ' simulare il tasto tab
    End If
    End If

    per formattare le text nell'evento validate o lostfocus

    text1.text = format(text1.text, "#,##0.00") 'il formato dell'euro

    il numero lo stabilisci in maxlength

    anche il testo esistente si può sovrascrivere con selstart ' in pratica posizioni il cursore all fine del testo esistente

    in alternativa con una variabile prima leggi la text e poi ricrei la stringa usando

    mistr = text1.text
    text1.text = text1.text & mistr

    by

  4. #4
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    per il punto 3 prova a guardare/cercare la mask-edit!
    Ora non rocordo bene, ma dovrebbe essere nei Common Control!!



  5. #5
    per formattare le date oltre a maskedit esistono ocx apposite, ma dopo averle provate preferisco farlo da codice

    per la data

    Private Sub txtFields_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer)
    If KeyCode <> 8 Then
    If Index = 5 Then
    MiData = txtFields(Index).Text
    If Len(MiData) = 2 Then
    txtFields(Index).Text = MiData & "/"
    txtFields(Index).SelStart = 3
    ElseIf Len(MiData) = 5 Then
    txtFields(Index).Text = MiData & "/"
    txtFields(Index).SelStart = 6
    ElseIf Len(MiData) = 10 Then
    txtFields(Index + 1).SetFocus
    End If
    End If
    End If
    End Sub

    per l'ora

    Private Sub txtFields_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer)
    If KeyCode <> 8 Then
    If Index = 2 Then
    MiOra = txtfields(Index).Text
    If Len(MiOra) = 2 Then
    txtfields(Index).Text = MiOra & "."
    txtfields(Index).SelStart = 3
    ElseIf Len(MiOra) = 5 Then
    txtfields(Index + 1).SetFocus
    End If
    End If
    end sub

    nb si tratta di una matrice di text di cui alla 2 l'ora e alla 5 la data e chiaramente dichiarare le variabili miora e midata

    by
    gyonny

    PS.

  6. #6
    Vi ringrazio davvero per le risposte che mi avete dato e spero che in futuro io possa ricambiare in qualche modo.
    Grazie Gab.
    Chi si ferma è perduto...

  7. #7
    Ho rispolverato una "vecchia discussione" poichè, ho cominciato a mettere in pratica ciò che mi serviva, ma nell'help on-line di MSDN, i comandi KeyAscii, ValAscii, vnKeyTab, Vbkeyreturn, non trovo sessun riuferimento.... ho tanto la sensazione che stia facendo un mucchio di cavolate, ma non vorrei arrendermi. Forse devo caricare qualche libreria, comefacevo col clipper????
    Chi si ferma è perduto...

  8. #8
    Finalmente ho capito il significato della frase di Xegallo "il prossimo errore ti costa una pinta"...:mavieni: :mavieni:
    Chi si ferma è perduto...

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.