OVH Cloud OVH Cloud

simuler un backspace

9 réponses
Avatar
Pascal
hello,
je cherche à envoyé dans un txtbox, le code chr(8)( Backspace)
petit hic ne sait quel est la commande adéquate
pour l'instant je fait ce qui suit, mais cela ne me permet pas d'éffacer à
l'endroit ou le pointeur de souris est positionné
merci d'avance
Pascal
=========================
Private Sub cmdBackspace_Click()
'si la chaine est vide on sort
If txtRecherche.Text = "" Then Exit Sub
'touche retour arrière
Dim X As Integer 'le nbre de caractère dans la chaine
Dim chaine As String ' le contenu du textbox

chaine = txtRecherche.Text
X = Len(chaine)
'enlever le dernier caractère de la chaine
X = X - 1
'reconstituer la chaine moins le dernier caractère
txtRecherche.Text = Mid(chaine, 1, X)
End Sub

9 réponses

Avatar
Vincent Guichard
Pascal a écrit :
hello,


Hello,

Quelque chose comme:

---8<---------
private Sub cmdBackspace_Click()
txtRecherche.SetFocus
If txtRecherche.SelText <> "" Then
txtRecherche.SelText = ""
ElseIf txtRecherche.SelStart > 0 Then
Dim s As Integer
s = txtRecherche.SelStart - 1
txtRecherche.Text = Left$(txtRecherche.Text, s) _
& Mid$(txtRecherche.Text, s + 2)
txtRecherche.SelStart = s
End If
End Sub
---8<----------

devrais pouvoir te servir.

Vincent Guichard
Avatar
Vincent Guichard
Vincent Guichard a écrit :
Pascal a écrit :
hello,


Hello,

Quelque chose comme:

---8<---------
private Sub cmdBackspace_Click()
txtRecherche.SetFocus
If txtRecherche.SelText <> "" Then
txtRecherche.SelText = ""
ElseIf txtRecherche.SelStart > 0 Then
Dim s As Integer
s = txtRecherche.SelStart - 1
txtRecherche.Text = Left$(txtRecherche.Text, s) _
& Mid$(txtRecherche.Text, s + 2)
txtRecherche.SelStart = s
End If
End Sub
---8<----------

devrais pouvoir te servir.

Vincent Guichard



PS: comme je suis très fort, j'ai répondu avant même que tu aies écrit:
Ton pc avance d'un jour!
Avatar
X
Bonjour,

Et comment tu sais où est ton curseur dans le texteBox ???

Ce que tu fais là dans ton code, ce n'est pas d'enlever à la position du
curseur, mais d'enlever le dernier caractère, suffit de faire:

On Error Resume Next
Text1 = Mid(Text1, 1, Len(Text1) - 1)

--
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Pascal" a écrit dans le message de news:

hello,
je cherche à envoyé dans un txtbox, le code chr(8)( Backspace)
petit hic ne sait quel est la commande adéquate
pour l'instant je fait ce qui suit, mais cela ne me permet pas d'éffacer
à
l'endroit ou le pointeur de souris est positionné
merci d'avance
Pascal
======================== > Private Sub cmdBackspace_Click()
'si la chaine est vide on sort
If txtRecherche.Text = "" Then Exit Sub
'touche retour arrière
Dim X As Integer 'le nbre de caractère dans la chaine
Dim chaine As String ' le contenu du textbox

chaine = txtRecherche.Text
X = Len(chaine)
'enlever le dernier caractère de la chaine
X = X - 1
'reconstituer la chaine moins le dernier caractère
txtRecherche.Text = Mid(chaine, 1, X)
End Sub






Avatar
Vincent Guichard
X a écrit :
Bonjour,

Et comment tu sais où est ton curseur dans le texteBox ???

Ce que tu fais là dans ton code, ce n'est pas d'enlever à la position du
curseur, mais d'enlever le dernier caractère, suffit de faire:

On Error Resume Next
Text1 = Mid(Text1, 1, Len(Text1) - 1)




C'est justement pour ça qu'il demande une autre solution, en disant que
le palliatif qu'il utilise actuellement ne lui convient pas, et lui
donner un code qui fait exactement la même chose que le sien ne va pas
l'aider beaucoup.

Vincent Guichard
Avatar
X
Ah bon, faut m'expliquer deux fois par moment, alors:

Savoir où est le curseur, donc:

Dim trans As String
On Error Resume Next
trans = Mid(Text1, Text1.SelStart + 1, Len(Text1) - Text1.SelStart)
Text1 = Mid(Text1, 1, Text1.SelStart - 1)
Text1 = Text1 & trans

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Vincent Guichard" a écrit dans le message de
news: 44f5bb35$0$27391$
X a écrit :
Bonjour,

Et comment tu sais où est ton curseur dans le texteBox ???

Ce que tu fais là dans ton code, ce n'est pas d'enlever à la position
du curseur, mais d'enlever le dernier caractère, suffit de faire:

On Error Resume Next
Text1 = Mid(Text1, 1, Len(Text1) - 1)




C'est justement pour ça qu'il demande une autre solution, en disant que le
palliatif qu'il utilise actuellement ne lui convient pas, et lui donner un
code qui fait exactement la même chose que le sien ne va pas l'aider
beaucoup.

Vincent Guichard


Avatar
Guy DETIENNE
Salut ;O)

Et si tu donnais simplement le focus à ta TextBox et lui envoyer un
BackSpace via SendKeys .
Chez moi ca marche parfaitement

Me.Text1.SetFocus
SendKeys "{BACKSPACE}"


Guy


"Pascal" a écrit dans le message de news:

hello,
je cherche à envoyé dans un txtbox, le code chr(8)( Backspace)
petit hic ne sait quel est la commande adéquate
pour l'instant je fait ce qui suit, mais cela ne me permet pas d'éffacer
à
l'endroit ou le pointeur de souris est positionné
merci d'avance
Pascal
======================== > Private Sub cmdBackspace_Click()
'si la chaine est vide on sort
If txtRecherche.Text = "" Then Exit Sub
'touche retour arrière
Dim X As Integer 'le nbre de caractère dans la chaine
Dim chaine As String ' le contenu du textbox

chaine = txtRecherche.Text
X = Len(chaine)
'enlever le dernier caractère de la chaine
X = X - 1
'reconstituer la chaine moins le dernier caractère
txtRecherche.Text = Mid(chaine, 1, X)
End Sub





Avatar
Pascal
Sorry pour tous le monde, plustot que de répondre au groupe, j'ai chaque
fois répondu à l'expéditeur..........Alzheimer certainement :lol
La solution de Vincent fonctionne comme je l'espérai, je t'en remercie
merci à X qui proposai une solution similaire
et merci à guy pour son aide également
voilà j'arrête avec les remerciements (j'ai pas envie d'être catalogué de
lèche-bottes blues) : lol

bien à tous
Pascal


"Pascal" a écrit dans le message de
news:
hello,
je cherche à envoyé dans un txtbox, le code chr(8)( Backspace)
petit hic ne sait quel est la commande adéquate
pour l'instant je fait ce qui suit, mais cela ne me permet pas d'éffacer


à
l'endroit ou le pointeur de souris est positionné
merci d'avance
Pascal
======================== > Private Sub cmdBackspace_Click()
'si la chaine est vide on sort
If txtRecherche.Text = "" Then Exit Sub
'touche retour arrière
Dim X As Integer 'le nbre de caractère dans la chaine
Dim chaine As String ' le contenu du textbox

chaine = txtRecherche.Text
X = Len(chaine)
'enlever le dernier caractère de la chaine
X = X - 1
'reconstituer la chaine moins le dernier caractère
txtRecherche.Text = Mid(chaine, 1, X)
End Sub





Avatar
Pascal
Hello Guy,
pour signaler que j'ai adopter ta solution pour l'ensemble de mon clavier
virtuel
c'est la m^me procédure qui est employée pour la calculatrice de Windows
merci à toi
Pascal

"Guy DETIENNE" a écrit dans le message de
news:
Salut ;O)

Et si tu donnais simplement le focus à ta TextBox et lui envoyer un
BackSpace via SendKeys .
Chez moi ca marche parfaitement

Me.Text1.SetFocus
SendKeys "{BACKSPACE}"


Guy


"Pascal" a écrit dans le message de news:

> hello,
> je cherche à envoyé dans un txtbox, le code chr(8)( Backspace)
> petit hic ne sait quel est la commande adéquate
> pour l'instant je fait ce qui suit, mais cela ne me permet pas


d'éffacer
> à
> l'endroit ou le pointeur de souris est positionné
> merci d'avance
> Pascal
> ======================== > > Private Sub cmdBackspace_Click()
> 'si la chaine est vide on sort
> If txtRecherche.Text = "" Then Exit Sub
> 'touche retour arrière
> Dim X As Integer 'le nbre de caractère dans la chaine
> Dim chaine As String ' le contenu du textbox
>
> chaine = txtRecherche.Text
> X = Len(chaine)
> 'enlever le dernier caractère de la chaine
> X = X - 1
> 'reconstituer la chaine moins le dernier caractère
> txtRecherche.Text = Mid(chaine, 1, X)
> End Sub
>
>
>




Avatar
Guy DETIENNE
Ce n'est peut-être pas la solution la plus 'pro', mais c'est néanmoins la
plus simple à mettre en place.

Ciao et bonne prog'

Guy

"Pascal" a écrit dans le message de news:

Hello Guy,
pour signaler que j'ai adopter ta solution pour l'ensemble de mon clavier
virtuel
c'est la m^me procédure qui est employée pour la calculatrice de Windows
merci à toi
Pascal

"Guy DETIENNE" a écrit dans le message de
news:
Salut ;O)

Et si tu donnais simplement le focus à ta TextBox et lui envoyer un
BackSpace via SendKeys .
Chez moi ca marche parfaitement

Me.Text1.SetFocus
SendKeys "{BACKSPACE}"


Guy


"Pascal" a écrit dans le message de news:

> hello,
> je cherche à envoyé dans un txtbox, le code chr(8)( Backspace)
> petit hic ne sait quel est la commande adéquate
> pour l'instant je fait ce qui suit, mais cela ne me permet pas


d'éffacer
> à
> l'endroit ou le pointeur de souris est positionné
> merci d'avance
> Pascal
> ======================== >> > Private Sub cmdBackspace_Click()
> 'si la chaine est vide on sort
> If txtRecherche.Text = "" Then Exit Sub
> 'touche retour arrière
> Dim X As Integer 'le nbre de caractère dans la chaine
> Dim chaine As String ' le contenu du textbox
>
> chaine = txtRecherche.Text
> X = Len(chaine)
> 'enlever le dernier caractère de la chaine
> X = X - 1
> 'reconstituer la chaine moins le dernier caractère
> txtRecherche.Text = Mid(chaine, 1, X)
> End Sub
>
>
>