繁体   English   中英

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

[英]How to move scroll bar up by one line? (In C# RichTextBox)

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

这是我做的:

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));

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

希望有所帮助。

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

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

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

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

window.scrollBy(0,20);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM