Comment faire pour désactiver la sélection sur une zone de texte
Je veux désactiver la sélection de texte et en cliquant sur dans le milieu de texte dans une zone de texte, mais l'utilisateur doit être en mesure d'entrer dans cette zone de texte et écrire à la fin du texte précédent, donc je ne peut pas le faire ReadOnly
ou Enable = false
.
Je tente de répondre à MouseDown
et effectuez les opérations suivantes:
input.Select(input.Text.Length, 0);
Il permet de placer un curseur dans le texte, mais l'utilisateur peut également effectuer une sélection à partir de la fin.
Je fais aussi un MessageBox()
sur MouseDown
de l'événement, mais dans ce cas, l'utilisateur ne peut pas cliquer sur la zone de texte et d'écrire quoi que ce soit.
La dernière tentative a été de définir un focus()
dans un autre le Contrôle et la concentration de retour, après une période de temps, mais il ne fonctionne pas du tout. L'utilisateur peut toujours faire un choix.
Comment puis-je le faire?
OriginalL'auteur Pieniadz | 2011-09-14
Vous devez vous connecter pour publier un commentaire.
Si elle correspond à l'INTERFACE utilisateur/utilisateur modèle, une autre approche consiste à utiliser deux zones de texte: a lire-une seule avec le texte précédent que l'utilisateur peut voir et d'agir (si c'est quelque chose qu'il doit faire) et une modifiable pour le nouveau texte avec un bouton pour valider le nouveau texte de la zone de texte (et de la couche de persistance).
Cette approche n'est pas seulement sans doute plus convivial—jacents de la boîte est entièrement modifiables, plutôt que de simplement "appendable", qui est source de confusion lorsque l'utilisateur appuie sur la touche retour arrière—mais exige également moins de combats avec le cadre pour faire les boîtes de faire ce que vous avez besoin.
OriginalL'auteur DocMax
Comment à ce sujet pour
Click
événementEdit: Également en faire de même pour
DoubleClick
etMouseLeave
de couvrir tous les cas. Vous pouvez avoir une commune de gestionnaire d'événements.MouseUp
sélection de disparaître, mais encore, l'utilisateur peut commencer à choisir quelque chose (surbrillance bleue)Ajouter
MouseMove
à la liste des événements qui effacer la sélectionOriginalL'auteur Bala R
Vous n'êtes pas loin avec votre gestionnaire d'événement MouseDown, mais probablement mieux pour attraper MouseUp, comme c'est l'événement qui va se déclencher quand ils ont terminé la sélection.
Sinon, vous pourriez attraper l'événement SelectionChanged.
Il suffit de mettre votre:
d'entrée.Sélectionnez(d'entrée.Texte.Longueur, 0);
code dans l'un de ces gestionnaires d'événements.
SelectionChanged
pour winformsTextBox
.OriginalL'auteur Chris Bampton