两个richtextboxes的相同滚动条
问题描述:
是否有任何第三方工具可用,它有两个richtextboxes,但只有一个共享滚动条。我需要用两种不同的语言实现一些文本,但是两个文本框应该同时滚动。两个richtextboxes的相同滚动条
答
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));
}
+0
伟大...欢呼声... – 2012-06-27 08:22:53
+0
哇。它完全可以工作。很好的答案。 – 2016-01-12 08:47:10
这不会解决您的问题吗? http://stackoverflow.com/questions/1827323/c-synchronize-scroll-position-of-two-richtextboxes – 2012-04-22 09:25:16
我不想有两个文本框之间的同步,而是我想提供相同的滚动条 – 2012-04-22 09:30:13