如题,在第一个RichTextBox鼠标滚动时第二个RichTextBox也要相应的滚动,如何做?

解决方案 »

  1.   

    这个好像实现不了吧,既然要同步滚动,是不是行行匹配?如果行行匹配不如直接用ListView。
      

  2.   

    一边拖动,另一个RichTextBox也自动与第一个RichTextBox拖动的位置相同。
      

  3.   

    除非两个内容完全一致,否则你根本滚不起来===================================================
    技术交流不该有界限 资源共享不该有条件
    博客空间:http://blog.csdn.net/lovingkiss
    资源下载:http://download.csdn.net/user/lovingkiss
    Email:loving-kiss@163.com
    本人说明:<我的帖子我做主,结贴率保持100%>
    1、欢迎一切问题有关的交流——无论答案对错;
    2、不欢迎 顶、Mark、支持之类口水混分的人;
    3、对带有性别的主题和求全部毕业代码者尽量不回答;
    我保留对非<散分贴>蹭分者的厌恶和鄙视...
    精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
    所以,我没有精通,只有JZ
    ===================================================
      

  4.   

    这个用要用API函数先取得这个RichTextBox的滚动位置,然后用SendMessage向另一个RichTextBox发送消息来滚动!
      

  5.   

    加到panel里然后用panel.AutoScrollPosition
    要不就是用sendmessage发消息
      

  6.   

    public enum WindowsMessage
        {
            WM_HSCROLL = 0x0114,
            WM_VSCROLL = 0x0115
        }
        public delegate void SendMessage(Message msg);
        public class MyRichTextBox:System.Windows.Forms.RichTextBox
        {
            public event SendMessage SendMessageEvent;
            protected override void WndProc(ref Message m)
            {
                if (m.Msg==WindowsMessage.WM_HSCROLL || m.Msg==WindowsMessage.WM_VSCROLL)
                {
                    if (SendMessageEvent!=null)
                    {
                        SendMessageEvent(m);
                    }
                }
                base.WndProc(ref m);
            }
            public void Scroll(Message m)
            {
                m.HWnd = this.Handle;
                WndProc(ref m);
            }
        }
    在使用的时候,用以下方式:        MyRichTextBox c1 = new MyRichTextBox();
            MyRichTextBox c2 = new MyRichTextBox();
            private void Form1_Load(object sender, EventArgs e)
            {
                c1.SendMessageEvent += new SendMessage(c1_SendMessageEvent);
                this.Controls.Add(c1);
                this.Controls.Add(c2);
            }        void c1_SendMessageEvent(Message msg)
            {
                c2.Scroll(msg);
            }    c1为源RichTextBox,c2为被动RichTextBox,c1滚动,c2也跟着滚动。
      

  7.   

    public enum WindowsMessage
        {
            WM_HSCROLL = 0x0114,
            WM_VSCROLL = 0x0115
        }
        public delegate void SendMessage(Message msg);
        public class MyRichTextBox:System.Windows.Forms.RichTextBox
        {
            public event SendMessage SendMessageEvent;
            protected override void WndProc(ref Message m)
            {
                if (m.Msg==WindowsMessage.WM_HSCROLL || m.Msg==WindowsMessage.WM_VSCROLL)
                {
                    if (SendMessageEvent!=null)
                    {
                        SendMessageEvent(m);
                    }
                }
                base.WndProc(ref m);
            }
            public void Scroll(Message m)
            {
                m.HWnd = this.Handle;
                WndProc(ref m);
            }
        }
    在使用的时候,用以下方式:        MyRichTextBox c1 = new MyRichTextBox();
            MyRichTextBox c2 = new MyRichTextBox();
            private void Form1_Load(object sender, EventArgs e)
            {
                c1.SendMessageEvent += new SendMessage(c1_SendMessageEvent);
                this.Controls.Add(c1);
                this.Controls.Add(c2);
            }        void c1_SendMessageEvent(Message msg)
            {
                c2.Scroll(msg);
            }    c1为源RichTextBox,c2为被动RichTextBox,c1滚动,c2也跟着滚动。