如何将滚动条向上移动一行? (在C#RichTextBox中)

时间:2008-10-15 18:08:18

标签: c# richtextbox scrollbar

对于我的C#RichTextBox,我想以编程方式执行与单击垂直滚动条顶部的向上箭头相同的操作,这会将RichTextBox显示向上移动一行。这是什么代码?谢谢!

4 个答案:

答案 0 :(得分:11)

这就是我的所作所为:

using System.Runtime.InteropServices;

[DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, uint wMsg, 
                               UIntPtr wParam, IntPtr lParam);

然后致电:

SendMessage(myRichTextBox.Handle, (uint)0x00B6, (UIntPtr)0, (IntPtr)(-1));

似乎工作正常 - 但你可能需要稍微调整一下。

希望有所帮助。

答案 1 :(得分:1)

为了将来参考,EM_LINESCROLL消息是您发送到任何多行编辑控件以设置滚动位置的消息。您可以垂直或水平滚动。 有关详细信息,请参阅MSDN

您还可以使用Rich Edit Selection方法设置字符索引(可以使用EM_LINEINDEX获得),然后调用RichEdit.ScrollToCaret,即:

RichEdit.SelectionStart = SendMessage(RichEdit.Handle, EM_LINEINDEX, ScrollTo, 0);
RichEdit.ScrollToCaret();

这会将该行滚动到编辑控件的顶部。

答案 2 :(得分:0)

window.scrollBy(0,20);

这将滚动窗口。 20是我过去使用的近似值,通常等于一行...但当然字体大小可能影响一行的真实程度。

答案 3 :(得分:0)

如果您可以获得富文本框的滚动控件,您应该能够获取其SmallChange属性并使用它来滚动文本。

相关问题