两个richtextboxes相同的滚动条 [英] same scroll bar for two richtextboxes

查看:272
本文介绍了两个richtextboxes相同的滚动条的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有它有两个richtextboxes但只为一个共享的滚动条任何第三方工具。我需要实现两种不同语言的一些文本,但无论是文本框,滚动应在同一时间。

解决方案

 公开枚举ScrollBarType:UINT
    {
        SbHorz = 0,
        SbVert = 1,
        SbCtl = 2,
        SbBoth = 3
    }

    公共枚举消息:UINT
    {
        WM_VSCROLL = 0x0115
    }

    公共枚举ScrollBarCommands:UINT
    {
        SB_THUMBPOSITION = 4
    }

    [的DllImport(User32.dll中)]
    公共静态的extern INT GetScrollPos(IntPtr的的HWND,INT NBAR);

    [的DllImport(User32.dll中)]
    公众的extern静态INT的SendMessage(IntPtr的的HWND,UINT味精,IntPtr的wParam中,IntPtr的lParam的);
   //设置在richTextbox1双滚动和影响richTextbox2

    私人无效richTextBox1_VScroll(对象发件人,EventArgs的)
    {
        INT非营利组织= GetScrollPos(richTextBox1.Handle,(INT)ScrollBarType.SbVert);
        非营利组织<&LT = 16;
        UINT wParam参数=(UINT)ScrollBarCommands.SB_THUMBPOSITION | (UINT)非营利组织;
        SendMessage函数(richTextBox2.Handle,(INT)Message.WM_VSCROLL,新的IntPtr(wParam参数),新的IntPtr(0));
    }
 

Is there any third party tool available which has two richtextboxes but only a shared scroll bar for both. I need to implement some text in two different languages but both the textboxes should scroll at the same time.

解决方案

    public enum ScrollBarType : uint
    {
        SbHorz = 0,
        SbVert = 1,
        SbCtl = 2,
        SbBoth = 3
    }

    public enum Message : uint
    {
        WM_VSCROLL = 0x0115
    }

    public enum ScrollBarCommands : uint
    {
        SB_THUMBPOSITION = 4
    }

    [DllImport("User32.dll")]
    public extern static int GetScrollPos(IntPtr hWnd, int nBar);

    [DllImport("User32.dll")]
    public extern static int SendMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
   // Set the dual scrolling on the richTextbox1 and affects richTextbox2

    private void richTextBox1_VScroll(object sender, EventArgs e)
    {
        int nPos = GetScrollPos(richTextBox1.Handle, (int)ScrollBarType.SbVert); 
        nPos <<= 16;
        uint wParam = (uint)ScrollBarCommands.SB_THUMBPOSITION | (uint)nPos;
        SendMessage(richTextBox2.Handle, (int)Message.WM_VSCROLL, new IntPtr(wParam), new IntPtr(0));
    }

这篇关于两个richtextboxes相同的滚动条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆