Désactivation Repainte pour la syntaxe RichtextBox mettant en surbrillance
lors de l'exécution de la syntaxe en surbrillance dans un RichtextBox pendant l'entrée utilisateur, la résolution de scintillement exige la détérioration de la désactivation. Solution
La solution actuelle implique de remplacer la fonction "wndproc" pour intercepter et supprimer les messages de repeindre. Cependant, cette approche n'est pas pratique pour les fonctions externes en travaillant avec un RichTextBox fourni.
surmonter la surveillance
Une approche plus efficace consiste à ajouter les méthodes manquantes de début et d'endouchement à la classe RichtextBox. Ces méthodes génèrent le message WM_SetdreDraw pour supprimer la repens. Utilisation de System.Windows.Forms; Utilisation de System.Runtime.InteropServices; classe MyRichTextBox: RichTextBox { public void BeginUpDate () { SendMessage (this.handle, wm_setRedRaw, (intptr) 0, intptr.zero); } public void endupdate () { SendMessage (this.handle, wm_setRedraw, (intptr) 1, intptr.zero); this.invalidate (); } [Dllimport ("user32.dll")] SendMessage extern statique privé (intptr hwnd, int msg, intptr wp, intptr lp); const int wm_setRaw = 0x0b; }
usage
Vous pouvez maintenant utiliser ces méthodes pour désactiver et activer la repeinture dans votre fonction de mise en évidence de syntax. fonction directement avant et après la mise à jour du texte.
sendMessage (this.handle, wm_setdreDraw, (intptr) 0, intptr.zero); // Désactiver la repeinture // Mette à jour le texte SendMessage (this.handle, wm_setRedraw, (intptr) 1, intptr.zero); // Activer la repeinture this.invalidate ();Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3