Comment masquer le curseur dans un RichTextBox?
Tout comme le titre: j'ai cherché sur le web pour une réponse, mais je n'étais pas en mesure de trouver un moyen de cacher le signe d'un RichTextBox dans VB.NET.
J'ai essayé de définir le RichTextBox.Propriété Enabled à False, puis de modifier la couleur de fond et couleur de premier plan pour les non-gris, mais cela ne suffit pas.
Merci d'avance.
- Je sais que c'est un vieux post, et est étiqueté .NET 3.5. Cependant, je voudrais vous donner une mise à jour pour ceux qui l'ont fouillé et vous pouvez utiliser .NET 4.0. Dans .NET 4.0, le contrôle RichTextBox a maintenant une propriété IsReadOnlyCaretEnabled, qui est par défaut à False, alors le curseur est automatiquement masquée si vous définissez ReadOnly Vrai. Si vous voulez un ReadOnly RichTextBox pour afficher le curseur, vous pouvez définir IsReadOnlyCaretEnabled de Vrai.
- Ma réponse résout votre problème? Si oui, vous pouvez envisager de le marquer comme réponse. Il est en C#, mais devrait fonctionner en VB, je pense. 🙂
- Salut, pouvez-vous envisager de marquer ma réponse comme solution?
- En fait, je pense que le plus simple est d'utiliser une autre commande transparente pour le couvrir! Il permet d'éviter l'introduction de la non-code managé.
Vous devez vous connecter pour publier un commentaire.
Solution:
à partir de: http://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_21896403.html
Vous pouvez utiliser le HideCaret la fonction de l'API, le Vérifier sur http://www.pinvoke.net. L'astuce est de savoir quand faire appel à elle. Un très simple et très sale solution est de lancer un one-shot timer dans le RTF Entrée de l'événement. Le piégeage le message approprié dans le WndProc comme nobugs suggestes est mieux, mais malheureusement, le message piégé est faux...
Cela fonctionne pour moi :
J'espère que cela aide
Place le contrôle richTextBox sur la forme
Set nom du formulaire que Form1
Ensemble richTextBox nom que richTextBox1
Si vous ne voulez pas permettre à l'utilisateur de copier le texte richTextBox1 ShortcutsEnabled valeur False à la propriété
Aller à Projet->Ajouter un Composant, entrez le nom de la composante ReadOnlyRichTextBox.cs
Puis ouvrez ReadOnlyRichTextBox.cs et collez code ci-dessous:
À partir de l'Explorateur de solutions, ouvrez votre "Form1.Le concepteur.cs" et de les remplacer dans ce fichier les lignes suivantes:
cette.richTextBox1 = nouveau Système.De Windows.Les formulaires.RichTextBox();
avec
cette.richTextBox1 = new ReadOnlyRichTextBox();
et
Système privé.De Windows.Les formulaires.RichTextBox richTextBox1;
avec
privé ReadOnlyRichTextBox richTextBox1;
Faire quelque chose pour l'empêcher de l'obtention de la "focus": il sera le signe, et être modifiable, seulement alors qu'il a le focus.
Ici, j'ai un contrôle de Texte enrichi nommé txtMessage, c'est les événements sont gérés à masquer le curseur sur les événements qui montrerait.
Version minimale (optimisé):
Je sais que c'est vieux, mais je vois beaucoup de différentes options ici.
Je dois ajouter que pour moi, cela a fait le tour :