Je suis en train de concevoir un pavé numérique dans Windows Form. S'il vous plaît supposer que j'ai Del
clé pour supprimer le caractère de textbox
. Lorsque je clique sur le textbox
pour la première fois pour le sélectionner et que j'appuie sur la touche Del
, le caractère est supprimé correctement par rapport à la position du curseur. Mais après la mise à jour du contenu du texte, la propriété SelectionStart
passe à zéro et mon curseur clignotant a disparu. J'ai résolu ce problème en sauvegardant sa valeur temporairement avant de mettre à jour le contenu de textbox
et de le modifier à la fin.Pavé numérique virtuel en C# - Existe-t-il un moyen élégant de mettre à jour Textbox.SelectionStart?
tempSelectionStart = enteredTextbox.SelectionStart; //save SelectionStart value temporarily
enteredTextbox.Text = enteredTextbox.Text.Substring(0, enteredTextbox.SelectionStart - 1)
+ enteredTextbox.Text.Substring(enteredTextbox.SelectionStart,
enteredTextbox.Text.Length - (enteredTextbox.SelectionStart));
enteredTextbox.SelectionStart = tempSelectionStart-1;
Je veux savoir:
- Y at-il une façon plus élégante de résoudre le problème?
- Comment puis-je maintenir le curseur clignotant dans la zone de texte après la première pression sur la touche?
Merci.
Si vous voulez que Del touche fonctionne comme Backspace et de supprimer le caractère qui est placé côté gauche du curseur, ne soustrayez un de 'SelectionStart'. Y a-t-il un autre moyen? – GntS
Soupir. Vous utilisez toujours la propriété SelectionText. –
Cher Passant, pouvez-vous me guider s'il vous plaît pour le faire par propriété SelectedText? – GntS