Autore Topic: [RISOLTO] Eliminare l'ultimo carattere inserito in una TextBox  (Letto 1002 volte)

Offline Gilby

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Un'altra domanda, ho creato un tasto cancel che dovrebbe eliminare l'ultimo carattere inserito nella textbox del form della tastiera, hai qualche consiglio anche per quello?
Ho provato a fare in questo modo:

Codice: [Seleziona]
Public Sub Button_Click()

  textbox1.Select(textbox1.pos - 1, 1)
 
End

Così facendo seleziono l'ultimo l'elemento o quello a sinistra del puntatore, adesso, una volta selezionato dovrei eliminarlo, consigli?

« Ultima modifica: 30 Maggio 2018, 09:26:28 da Gilby »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Eliminare l'ultimo carattere inserito in una TextBox
« Risposta #1 il: 29 Maggio 2018, 15:54:45 »
Per "ultimo" carattere cosa intendi ?
Quello più a sinistra o quello più a destra ? 

Poi un'altra domanda: è necessario proprio evidenziarlo ?
« Ultima modifica: 29 Maggio 2018, 15:56:22 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Eliminare l'ultimo carattere inserito in una TextBox
« Risposta #2 il: 29 Maggio 2018, 16:00:46 »
Lui evidenzia l'ultima a destra, quindi credo voglia fare qualcosa di simile:
Codice: [Seleziona]
  Dim s As String

  s = TextBox1.Text
  If Not IsNull(s) Then
    s = Left(s, Len(s) - 1)
    TextBox1.text = s
  Endif

Sono però d'accordo con te nel ritenere Gilby un po avaro di informazioni  ;D

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Eliminare l'ultimo carattere inserito in una TextBox
« Risposta #3 il: 29 Maggio 2018, 16:11:36 »
...e se la stringa possiede caratteri composti con ASCII esteso
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Eliminare l'ultimo carattere inserito in una TextBox
« Risposta #4 il: 29 Maggio 2018, 16:22:35 »
...e se la stringa possiede caratteri composti con ASCII esteso ?

Il mio codice non andrebbe bene  ;D
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gilby

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re:Eliminare l'ultimo carattere inserito in una TextBox
« Risposta #5 il: 29 Maggio 2018, 16:33:51 »
Per "ultimo" carattere cosa intendi ?
Quello più a sinistra o quello più a destra ? 

Poi un'altra domanda: è necessario proprio evidenziarlo ?

Intendo ultimo carattere inserito a destra, non è necessario evidenziarlo, ho cercato di trovare una soluzione dalla selezione perché non sapevo come fare.

Lui evidenzia l'ultima a destra, quindi credo voglia fare qualcosa di simile:
Codice: [Seleziona]
  Dim s As String

  s = TextBox1.Text
  If Not IsNull(s) Then
    s = Left(s, Len(s) - 1)
    TextBox1.text = s
  Endif

Sono però d'accordo con te nel ritenere Gilby un po avaro di informazioni  ;D

 :ciao:

Così credo vada bene, anche se come avete detto successivamente non è la soluzione ideale per tutti i casi, chiedo scusa se sono abbastanza criptico anche se hai colto in pieno tutti i miei dubbi, ancora grazie.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Eliminare l'ultimo carattere inserito in una TextBox
« Risposta #6 il: 29 Maggio 2018, 16:40:53 »
Ecco allora una simpatica soluzione esaustiva (puoi far terminare la stringa con un carattere accentato (à,ò,è,é,ù):    :)

Codice: [Seleziona]
Public Sub Button1_Click()
 
  TextBox1.Select(TextBox1.Pos - 1, 1)

  Wait 0.5

  If Not IsAscii(Right(TextBox1.Text, 1)) Then
    TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - 2)
  Else
    TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - 1)
  Endif

End
« Ultima modifica: 29 Maggio 2018, 16:42:15 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Eliminare l'ultimo carattere inserito in una TextBox
« Risposta #7 il: 29 Maggio 2018, 17:33:52 »
Inserisco questa variazione alla mia prima risposta:
Codice: [Seleziona]
  Dim s As String

  s = TextBox1.Text
  If Not IsNull(s) Then
    s = Left(s, String.Len(s) - 1)
    TextBox1.text = s
  Endif

 :ciao:
« Ultima modifica: 29 Maggio 2018, 18:09:31 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Eliminare l'ultimo carattere inserito in una TextBox
« Risposta #8 il: 29 Maggio 2018, 17:48:47 »
... questa variazione alla mia prima risposta
Il codice è efficace e molto breve.
La mia soluzione, per ora, consente - in più - di ottenere quanto richiesto da Gilby anche con una stringa terminante con due o più caratteri accentati.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gilby

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re:Eliminare l'ultimo carattere inserito in una TextBox
« Risposta #9 il: 29 Maggio 2018, 17:53:54 »
Inserisco questa variazione alla mia prima risposta:
Codice: [Seleziona]
  Dim s As String

  s = TextBox1.Text
  If Not IsNull(s) Then
    s = Left(s, String.Len(s) - 1)
    TextBox1.text = s
  Endif

 :ciao:

... questa variazione alla mia prima risposta
Il codice è efficace e molto breve.
La mia soluzione, per ora, consente - in più - di ottenere quanto richiesto da Gilby anche con una stringa terminante con due o più caratteri accentati.

Il top, grazie mille!!
« Ultima modifica: 29 Maggio 2018, 18:10:50 da Gianluigi »