C#两个richTextBox同步滚动【200分!!!!】

richTextBox2和richTextBox3同步滚动给我写个完整的代码调试成功给200分决不食言谢谢~!麻烦大家了...方法在哪里调用啊?新手,见谅... richTextBox2和richTextBox3 同步滚动
给我写个完整的代码
调试成功给200分 决不食言
谢谢~!麻烦大家了...
方法在哪里调用啊?新手,见谅
展开
 我来答
dkxpsg
2010-04-22 · TA获得超过1628个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1049万
展开全部

你可以重写RichTextBox截获它的滚动条消息和鼠标消息发送给另一个RichTextBox,如下

using System;

using System.Collections.Generic;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace SolveQuestion

{

    class RichTextBoxEx : RichTextBox

    {

        [DllImport("user32.dll")]

        public static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

        public RichTextBoxEx()

        {

        }

        public const int WM_HSCROLL = 276;

        public const int WM_VSCROLL = 277;

        public const int WM_SETCURSOR = 32;

        public const int WM_MOUSEWHEEL = 522;

        public const int WM_MOUSEMOVE = 512;

        public const int WM_MOUSELEAVE = 675;

        public const int WM_MOUSELAST = 521;

        public const int WM_MOUSEHOVER = 673;

        public const int WM_MOUSEFIRST = 512;

        public const int WM_MOUSEACTIVATE = 33;

        private RichTextBox otherRichTextBox;

        public RichTextBox OtherRichTextBox

        {

            get { return otherRichTextBox; }

            set { otherRichTextBox = value; }

        }

        protected override void WndProc(ref Message m)

        {

            if ((otherRichTextBox != null) &&

                (m.Msg == WM_HSCROLL ||

                m.Msg == WM_VSCROLL ||

                m.Msg == WM_SETCURSOR ||

                m.Msg == WM_MOUSEWHEEL ||

                m.Msg == WM_MOUSEMOVE ||

                m.Msg == WM_MOUSELEAVE ||

                m.Msg == WM_MOUSELAST ||

                m.Msg == WM_MOUSEHOVER ||

                m.Msg == WM_MOUSEFIRST ||

                m.Msg == WM_MOUSEACTIVATE))

            {

                SendMessage(otherRichTextBox.Handle, m.Msg, m.WParam, m.LParam);

            }

            base.WndProc(ref m);

        }

    }

}

调用方法

        private void Form1_Load(object sender, EventArgs e)

        {

            richTextBoxEx1.OtherRichTextBox = richTextBoxEx2;

        }

温悠2B
2010-04-22
知道答主
回答量:13
采纳率:0%
帮助的人:8.1万
展开全部
说得太抽象了···把要求具体一点·
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式