2013-08-21 7 views
1

J'ai un clavier virtuel créé en RealBasic. Lorsque j'appuie sur des lettres, les chiffres que je l'ajoute à un champ de texte tout est correct, mais comment supprimer des caractères de ce champ de texte de la position actuelle du curseur lorsque j'appuie sur le bouton "Supprimer" du clavier virtuel?Supprimer un caractère de la chaîne realbasic

Pour ajouter des lettres ou des chiffres pour les champs de texte que j'utilise:

TextField1.Text = TextField1.text + me.Caption //to append caption 
TextField1.SelStart = Len(TextField1.text) // to move cursor at the end of string 

Répondre

0

Juste élaguer le dernier caractère:

TextField1.Text = TextField1.Text.Left(TextField1.Len-1) 
2

solution de Paul fonctionne si vous prévoyez de supprimer le dernier caractère typé.

Mais attention: si vous laissez l'utilisateur déplacer aussi le curseur vers la gauche et vers la droite, il faut bien sûr supprimer le texte à la position du curseur. Et si vous permettez également à l'utilisateur de sélectionner du texte, c'est encore plus compliqué.

Je suggère que votre clavier virtuel envoie simplement la clé tapée au système comme si l'utilisateur avait appuyé sur la touche. De cette façon, le champ TextEdit fera tout pour vous. Pour que cela fonctionne, cependant, vous avez besoin de solutions personnalisées pour chaque plateforme de système d'exploitation que vous voulez prendre en charge. Faites-moi savoir quelles plates-formes vous envisagez de prendre en charge et je verrai ce que je peux trouver. J'ai du code pour OSX mais pas pour Windows.

2

ce que Thomas dit Faire des moyens:

dim n as String = TextField1.Text 
n = newText.left(TextField1.selStart) + n.right(n.len - textField1.selStart - 1) 
textField1.text = n 
Questions connexes