Click here to Skip to main content
15,881,380 members
Articles / Programming Languages / C#
Tip/Trick

Synchronized RichTextBox objects (or how to scroll 2 RichTextBox objects together)

Rate me:
Please Sign up or sign in to vote.
4.71/5 (7 votes)
22 May 2011CPOL 26.5K   11   1
In this tip, I will show how to scroll two RichTextBox objects together
In my previous post (Synchronized ListBox objects (or how to scroll 2 ListBox objects together)[^]), I described how to create synchronized (or linked) ListBox and ListView objects. Now I continue investigation in this area and I have found another interesting example which describes synchronization of two RichTextBox objects. The first step is to create a class which derives from RichTextBox class.
C#
public class SynchronizedScrollRichTextBox : System.Windows.Forms.RichTextBox
{
    public event vScrollEventHandler vScroll;
    public delegate void vScrollEventHandler(System.Windows.Forms.Message message);

    public const int WM_VSCROLL = 0x115;

    protected override void WndProc(ref System.Windows.Forms.Message msg)
    {
        if (msg.Msg == WM_VSCROLL)
        {
            if (vScroll != null)
            {
                vScroll(msg);
            }
        }
        base.WndProc(ref msg);
    }

    public void PubWndProc(ref System.Windows.Forms.Message msg)
    {
        base.WndProc(ref msg);
    }
}

I created two SynchronizedScrollRichTextBox controls and placed them on the form. Then, I added the following code (vScroll event):
C#
private void synchronizedScrollRichTextBox1_vScroll(Message message)
{
    message.HWnd = synchronizedScrollRichTextBox2.Handle;
    synchronizedScrollRichTextBox2.PubWndProc(ref message);
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect Marwin Cassovia Soft
Slovakia Slovakia
My name is Robert Kanasz and I have been working with ASP.NET, WinForms and C# for several years.
MCSD - Web Applications
MCSE - Data Platform
MCPD - ASP.NET Developer 3.5
- Web Developer 4
MCITP - Database Administrator 2008
- Database Developer 2008
MCSA - SQL Server 2012
MCTS - .NET Framework 3.5, ASP.NET Applications
- SQL Server 2008, Database Development
- SQL Server 2008, Implementation and Maintenance
- .NET Framework 4, Data Access
- .NET Framework 4, Service Communication Applications
- .NET Framework 4, Web Applications
MS - Programming in HTML5 with JavaScript and CSS3 Specialist

Open source projects: DBScripter - Library for scripting SQL Server database objects


Please, do not forget vote

Comments and Discussions

 
GeneralExcellent! Pin
Jeff Schnarel5-Dec-14 9:29
Jeff Schnarel5-Dec-14 9:29 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.