Je crée un contrôle WinForms en C# (en utilisant VS2008, .net 3.5) qui permet la saisie de texte. J'ai importé les fonctions de l'API Win32 nécessaires de User32.dll pour afficher le signe d'insertion de Windows normal et tout cela fonctionne très bien, mais il n'affiche pas exactement comment je l'aimerais.Couper le curseur dans un programme C#
Le texte est affiché sur le contrôle avec une bordure vierge et j'utilise Graphics.SetClip() pour laisser cette marge libre. Je veux que le caret soit découpé dans la même région, mais comme je ne le peins pas et qu'il n'y a pas de fonction API évidente pour définir une région de découpage, je ne vois aucun moyen de le faire. Ai-je manqué quelque chose d'évident?
Le curseur est clipsé à l'intérieur de la commande dans laquelle il est dessiné. Je suis donc conscient qu'une solution pourrait être de placer le texte dans un sous-contrôle séparé sans bordure. Cependant, s'il y a un moyen plus simple que de redéfinir cette partie du contrôle, j'aimerais d'abord le chercher.
Merci d'avance pour toute aide!
Avez-vous dérivé votre contrôle de TextBox ou dessinez-vous tout vous-même? –
C'est tiré à partir de zéro. Malheureusement, Textbox est un wrapper raisonnablement mince autour du contrôle Win32 non managé afin que les modifications que vous pouvez apporter à la fonctionnalité sont un peu limitées. –