


Explication détaillée de la façon d'implémenter le défilement synchrone de deux barres de défilement de contrôle Richtextbox en C#
Cet article vous présente principalement la méthode simple de C#implémentation de deux richtextboxcontrôles barres de défilement pour défiler de manière synchrone. L'introduction dans l'article est très détaillée et a une certaine référence pour tout le monde. .Valeur, amis dans le besoin venez jeter un oeil ci-dessous.
Préface
Parfois, nous devons implémenter des articles de comparaison, etc., et souvent placer le texte dans deux contrôles richtextbox, mais si nous en avons besoin Faites défiler et visualisez simultanément pour obtenir de meilleurs effets de visualisation.
Bien sûr, la méthode traditionnelle de surcharge des contrôles ou des contrôles personnalisés peut atteindre l'objectif, mais elle est très gênante pour les novices ou les personnes qui souhaitent utiliser ce contrôle une seule fois. Je vais donc proposer ensuite un moyen simple et rapide de mise en œuvre : la fonction de synchronisation de la barre de défilement de richtextbox.
La méthode est la suivante :
Tout d'abord, nous créons deux contrôles richtextbox dans le formulaire winform
Deux méthodes sont présentées ci-dessous. J'utilise souvent la
première méthode pour obtenir le numéro de ligne dans le contrôle richtextbox où se trouve le courant. la souris est localisée
private int GetLineNoVscroll(RichTextBox rtb) { //获得当前坐标信息 Point p = rtb.Location; int crntFirstIndex = rtb.GetCharIndexFromPosition(p); int crntFirstLine = rtb.GetLineFromCharIndex(crntFirstIndex); return crntFirstLine; }
La deuxième méthode consiste à accéder rapidement à une certaine ligne dans le contrôle richtextbox
private void TrunRowsId(int iCodeRowsID, RichTextBox rtb) { try { rtb.SelectionStart = rtb.GetFirstCharIndexFromLine(iCodeRowsID); rtb.SelectionLength = 0; rtb.ScrollToCaret(); } catch { } }
Avec ces deux méthodes, nous pouvons réaliser La fonction de synchronisation de la barre de défilement est désormais disponible.
L'idée est la suivante : tout d'abord, lorsque richtextbox1 défile, obtenez le numéro de ligne correspondant à la souris de richtextbox1 via la méthode GetLineNoVscroll. Ensuite,
localise le numéro de ligne de richtexbox1 obtenu dans richtextbox2 via la méthode TrunRowsId, de sorte que richtextbox2 défile avec la barre de défilement richtexbox1
soit dans le VScroll< de richTextBox1 ; Ajoutez le code suivant à l'événement 🎜> Remarque : en ai-je un ici ? , représente un certain décalage. Les deux zones de texte riches peuvent être désynchronisées pour des raisons de mise en page (telles que la taille du contrôle, etc.)
En général, écrivez simplement 0. Si l'écart est trop grand, ajustez-le vous-même.entierValeur.
private void richTextBox1_VScroll(object sender, EventArgs e) { int crntLastLine= GetLineNoVscroll(richTextBox1, panel1)-?; TrunRowsId(crntLastLine, richTextBox2); }
Résumé
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'Active Directory avec C#. Nous discutons ici de l'introduction et du fonctionnement d'Active Directory en C# ainsi que de la syntaxe et de l'exemple.

Guide de sérialisation C#. Nous discutons ici de l'introduction, des étapes de l'objet de sérialisation C#, du fonctionnement et de l'exemple respectivement.

Guide du générateur de nombres aléatoires en C#. Nous discutons ici du fonctionnement du générateur de nombres aléatoires, du concept de nombres pseudo-aléatoires et sécurisés.

Guide de la vue Grille de données C#. Nous discutons ici des exemples de la façon dont une vue de grille de données peut être chargée et exportée à partir de la base de données SQL ou d'un fichier Excel.

Guide des modèles en C#. Nous discutons ici de l'introduction et des 3 principaux types de modèles en C# ainsi que de ses exemples et de l'implémentation du code.

Guide des nombres premiers en C#. Nous discutons ici de l'introduction et des exemples de nombres premiers en c# ainsi que de l'implémentation du code.

Guide de Factorial en C#. Nous discutons ici de l'introduction de factorial en c# ainsi que de différents exemples et de l'implémentation du code.

La différence entre le multithreading et l'asynchrone est que le multithreading exécute plusieurs threads en même temps, tandis que les opérations effectuent de manière asynchrone sans bloquer le thread actuel. Le multithreading est utilisé pour les tâches à forte intensité de calcul, tandis que de manière asynchrone est utilisée pour l'interaction utilisateur. L'avantage du multi-threading est d'améliorer les performances informatiques, tandis que l'avantage des asynchrones est de ne pas bloquer les threads d'interface utilisateur. Le choix du multithreading ou asynchrone dépend de la nature de la tâche: les tâches à forte intensité de calcul utilisent le multithreading, les tâches qui interagissent avec les ressources externes et doivent maintenir la réactivité de l'interface utilisateur à utiliser asynchrone.
